收录日期:2018/10/22 22:45:32 时间:2016/05/20 18:28:21 标签:机器视觉
根据图像的RGB值进行新旧判别时,由于同一张图在不同时刻拍摄得到的RGB值总是不同的,也就是说无论在新旧分界线划在哪一RGB值上,RGB值在这一分界线附近的图像便会在分界线(即新旧)左右晃动.有无好的算法能解决这种不稳定性问题呢?
很难吧,因为有的新图的颜色本身就看过去很旧的,那还怎么判别啊。如果真要判别的话,这个新旧分界线我看就要根据具体的情况取经验值咯,就象我们做二值化取阀值一样。
同意楼上的观点,楼主的问题有点难,在不同时刻拍摄的照片的光强是不同,反映到图象上就是RGB值的变化,但有很多因素的影响,比如第一次是在阳光明媚的天气拍的,而第二次拍摄时天气很昏暗,从RGB的变化很难判断图像的新旧,应该考虑其它的判断准则。
关注!没有听说过!
HUNTON老兄说得对,新和旧的标准是什么呢?这需要建立一个新旧对比的数学模型的,要不然到底是RGB在分界线左边还是右边时算是旧的?同时还要控制拍摄条件,这是最简单实现的。还有就是在分界线附近设置一个置信区间看看。
谢谢各位的热情关注。我要声明几点1)新旧的标准暂不去考虑(问题的焦点不在此)2)拍摄图片是在特定的仪器中进行(线阵式CCD摄像头与图片的垂直距离基本固定(当然会有误差),水平方向可有一定范围的变动,光照恒定(可能会有误差))3)新旧判别是针对某一类图片而言的(如货币、各类票据及具有重复性印刷的图片)4)问题的焦点在于:如果硬件条件不改善,软件上有没有好的算法能够降低分界线附近的图片的RGB值的波动?
新图片相对旧图片在形式上的表现是锐化。
也就是说老图片变得模糊,新的依然很清晰。
老图片也会变的DIRTY,但是不好形容。

有标准的新图应该可以就图像的模糊程度做对比的。
难题。
楼上的兄弟,请问模糊程度能否量化?如何量化?是否也存在“稳定性”的问题?
模糊在数据上的体现就是 一个点和周围点的颜色的差距程度, 我们可以用 
E (FABS(SOURCE[I+DX, J+DX]-SOURCE[I,J]))来计算一个点和周围点的颜色差异
整个图像的颜色模糊程度也可以由此计算得到。

不稳定性往往表现在图像的色差上,也就是说整体的颜色偏亮或者是偏暗,对于局部的影响不大,判断模糊程度应该说是比较稳定的。

楼上的兄弟,非常感激您的热情关注!这确实是一个新的思路。我试试看,然后把结果告诉您,希望您能继续关注。谢谢!
我也觉得happy__888([顾问团]寻开心) 的方法可行,把清晰看成模糊的锐化这个见解很好。
不过这里模糊程度量化后,还是会碰到判断清晰时的阀值选取问题。另外楼主说“新旧判别是针对某一类图片而言的”这句话是不是说每次判别的图基本上是同一个图片,只不过清晰程度不一样啊,比如每次都是拍100元的人民币,但不是同一张。如果是的话,可以考虑用模板匹配的方法。即先得到全新的和和最模糊的图片模板,然后拿待判断的图片跟他们匹配,根据匹配程度就可以知道图片是新的还是旧的了。
HUNTON()举的例子非常恰当!问题就在于对同一张元的人民币在“同一”硬件条件下反复拍摄,所得到的图像的RGB值其实是不一样的(肉眼分辨不出来)。这样一来如果这张人民币恰好就在分界线附近,便会时而“新”时而“旧”。刚才用happy__888([顾问团]寻开心)试过,新旧值太接近,并且也存在波动。怎么办?
新旧值太接近(大约1个单位RGB值的差距),并且新旧值差距接近波动的大小(大约1个单位RGB值).是不是"把清晰看成模糊的锐化"的出发点就不正确呢?
最模糊的怎么定义?全部同色吗?

楼主是不是做平均了,不作平均,直接把周围点和自身的差距和拿来判断。

新旧肯定是要依靠一个阀值来区分的,7成新,8成新都是新,这个标准恐怕要考经验数值来确定了。

另外,模糊可能也不是判断新旧的唯一标准,设计人民币的时候,本来也就考虑到了新旧情况下的画面都要清晰。

色差可能是另外一种有效判别办法了。
提取一个区域的平均色,然后比较两个图像的平均色,旧的颜色一般应该黯淡一些(这点从模糊上可能判别不出来)



旧的图片不一定模糊,只是整体RGB值偏小,它的主要特征也就是偏暗,因此以"图像的模糊程度做对比"实际上行不通.谁能提出更新的思路呢?
happy__888([顾问团]寻开心),没有错,我是作平均了,但这样似乎并不影响结论吧.假如每张图拍得1万个PIXEL,而很新与很旧的"差值"的差距约1万RGB单位(且不管半新不旧的),同一图片反复拍摄,其"差值"也是约1万个RGB单位,这样一来根本就无法用来作新旧判别.
拿人民币为例.假如新旧分10个等级,假定7级以上为新,7级以下为旧.那么采用平均RGB值的方法确实是能对大量的人民币分出新旧,问题是必然有部分人民币是在6、7级。由于拍摄图时无法达到理想化,同一张图可能这一次是6级,下一次是7级,这几乎是无法避免的。现在要做的是减少这种晃动的概率。这是一个比较具有普遍意义的问题,它的特殊性仅仅在于它是图像信号(比如电平信号的逻辑0与1的划分)。我现在就是不知道什么样的方法的稳定性更高?
很新与很旧的"差值"的差距约1万RGB单位,同一图片反复拍摄,其"差值"也是约1万个RGB单位.
如果你的硬件设备只能达到这种等级的识别恐怕没有办法了,考虑更换你的设备吧,或者改善拍摄的环境影响。

看看谁还有别的办法吧。
当误差的范围已经淹没了实际数据的时候不知道该如何识别。
这好像是没有什么好办法的
happy__888([顾问团]寻开心): 谢谢您的热情关注!昨天程序有点错误,您提出的“模糊”方法确实可以分辨新旧,很新与很旧的"差值"的差距是“约5万个RGB单位”,临界线附近的波动是“0.5万个RGB单位”(1万个PIXEL是个假定值),这与平均RGB值及直方图求得的结果是类似的(如果分成10个等级浮动误差均为1个等级).
我再再扩大临近点的距离试试看.
如果这个模糊可以检测,但是精度不够的话,
还可以考虑和前面的平均颜色数值做联合判断。
从 最新的颜色亮度×模糊度   到   最旧的颜色亮度×模糊度 之间的数值差距可能会比较大。
happy__888([顾问团]寻开心):谢谢!数值差距变大,但浮动同样会变大,精度可能仍然得不到改善.不过我试试看.
happy__888([顾问团]寻开心): 权值已经考虑进去了,结果仍不理想,浮动仍然在1个等级.(图象过于细致,0.25mm内估计就有RGB的变化,而所采用的线阵式的CCD的分辨率是1PIXEL/0.25mm,所以每次拍摄的图的RGB值都不一样。针对这种情况,还有没有更为有效的方法来抵消这种误差呢?)
关注!!

本人正在作视频运动检测,并取样分析,进行人脸识别等一系列工作。。。
感觉有挑战性。。。。
好难。。。。
thinking............
关注
觉得还是要从图像的亮度方面做补足, “最好和最坏的差异与扫描的误差一样大”,这件事情如果不能改进,就很难解决。

要么你就对你检测的结果向报告天气预报一样: 破损概率是 60%, 误差 10%得了

还有就是改善你的扫描环境,争取不要造成一边亮,一边暗的效果,那样对模糊度的判断影响比较大。
我想,要从边缘局部特性上来区别新旧图片是很难的,从图片的整体特性上下手就比较方便.
具体说,可以对照新旧两张图片的直方图,来识别印刷品(如纸币)的新旧: 因新的印刷品(纸币)很清洁,图象线条黑白分明;而旧的图象整体变灰,也就是暗的和亮的象素减少,中间色泽象素增加,这样,如果构造一张(新图的直方图-旧图的直方图)之差的直方图,那么出现的必定是下凹的图形.

***************                   **************                           
                                *****                 ******            *****                 ******
                                                                                   **************
 新图片的直方图       旧图片的直方图           (新直方-旧直方)图
  
上面的图乱套了,改为下面的试试看:
***************     **************                           
                  *****                 ******        *****                 ******
                                                              **************
 新图片的直方图       新图片的直方图           (新-旧)的直方图
  
还是不行!再改一次:

*************   

新图片的直方图


   *******   
***       ***

旧图片的直方图



***       ****
   *******

(新直方-旧直方)图
我的统计结果是:从直方图来看,旧图较至于新图的变化特征是亮的像素部分向暗的像素部分缩,
                                 *
      *    *                    *   *
  *          *  *              *       * *           
*                *            *           *
新图                          旧图
并没有你所说的特征,而且也会面临稳定性的问题.
直方图分析的是整体的颜色的对比,
对于一个颜色本来就比较杂乱的图案不一定适合。
也许针对特定的图像,变换一下从不同的颜色到直方图的转换方式就会有好的效果。


从直方图当中如何抽象出新旧的数字参数呢?


如果能够从直方图当中分析出光照的过渡关系就会对模糊的识别有帮助。
分析新旧图的直方图的变化特征:新图的PIXEL个数大多集中在高RGB值处旧图则在低RGB值处,同样可用于新旧区分,但也同样不能解决稳定性问题.至于从"直方图当中分析出光照的过渡关系"还没有尝试过.
关于"模糊识别",这两天作过种种尝试,没有什么改善.这道题实在太难解了!
从"直方图当中分析出光照的过渡关系" 也不要尝试啦,更难。

纯粹从RGB数值聚集在高处还是低处分别不出来是旧钱币还是扫描的时候光线暗。
这个结果和获得图片的平均亮度区别不大。

着手尝试改善你的数据来源吧。
我的看法是:彻底改变算法,既然通过RGB像素来判断有波动,而且不好分辨,而且楼主要处理的是一个固定内容的图像,那就设置一些取样区域,比如人民币的左上角,右上角,左下角,右下角,中间偏左,中间偏右等等。然后再对取样的部分进行局部计算,然后取大多数的意见作为新旧的结果,而像楼主说的波动问题,我想完全可以使用算法把波动放大,这样就容易判断了。我写过一些图像处理方面的代码,但是由于不知道楼主要处理的图像的具体情况,也不好建议是用哪种算法,可能的话请楼住放上新旧的两张图片来看一下。
gaoxiaohui(吴昊) :

你的2个结果正是我想象的结果! 再求一下差,就可以看到2边上翘中间下凹的图形了!

我的图是随手画的,是象征性的,实际图片千差万别,我无论如何也不可能猜中你的图片的直方图.
主要是看两幅直方图的关系: 中间部份旧图比新图高,而2边新图比旧图高.这样求差后的图形一定是两边上翘,中间下凹了!
自然,以上仅指一般图片,它们有很亮的部分,也有很暗的部分,这样,弄旧时,上面加了一层灰色,从而亮的部分会变暗,暗的部分会变亮些,即都趋向中间色泽:灰色. 如果你的图片原来是一张全亮的(如一张白纸),那当然只有亮的变暗,没有暗的变亮了!
要研究2个图不够,至少3-5个图,新- 稍旧- 旧 这样研究才有可能成功。
昨天帮朋友解决了一个自动调整焦距的问题,就是模糊图和清晰图的检测。。。
呵呵

dhtmlxgrid 怎么显示数据库的 hi ,做了一个漂亮的窗口操作类,给大家分享下 DataSet更新数据库 无主键 dhtmlxgrid 怎么显示数据库的 struts判断使用ACTION里的那个方法简单问题 关于dataGridView的小小问题 WTL写的皮肤界面有一点问题谁能帮帮我 如何让背景图片自适应表格的大小 dhtmlxgrid 怎么显示数据库的 [昵称PK大赛][个人赛][26强循环赛] [旋风组] 现在开始,敬请关注! 急急,请问用sql2005的服务器报表做套打的时候,能不能加个背景图片? 大家帮个忙呀,实现一个联系点击几块地方触发一个事件??? XP系统有时无法从网上邻居无法访问win2000系统共享文档 如何返回两个日期相差多少年月日 dhtmlxgrid 怎么显示数据库的 头文件中这个变量是属于什么 gridview的模板 自动伸缩Edit 我的LINUX好象无法使用rpm,是否初始安装是没有这个命令的? linux下安装j2sdk-1_4_2_12-linux-i586.bin,出现can\'t find /usr/bin/sum to do checksum 我都押了,整副身家啊,你们押了多少啊! 没分,求解,烦人的各种文档。 求解,用0-9组成乘法竖式 SYMBIAN终于有反应了。这个反应似乎有点晚了。 高分:求个像样的ASP.NET博客源码,要求好一点的,但封闭的不要太过分 【招聘】廣州全臺招聘Delphi程序員 关于xmlhttp的问题 //高手请进,决对高难性有挑战的问题。 求解,用0-9组成乘法竖式 winform中可以用XML做数据库吗? idtcpserver的最大连接数问题.