基于opencv的纸张表面质量检测算法中

用c++编程……opencv里面的什么东西可以实现纸张表面质量检测呢?包括(空洞,褶皱,划痕,斑点……)有没有可以模仿的例子呢?……这个算法设计的主要步骤是哪些?

opencv里面是没有那种算法的,它只是提供一些常用的计算函数。具体的算法,由于你的需求比较特殊,相信应该没有现成的瑕疵检测算法,好在你的需求难度应该不大,通过常用的图像识别算法,比如纹理算法(Gabor算法)、SURF算法就可以找到白纸上瑕疵,这些瑕疵都是相当于一张白纸的特征点嘛!基本思想就是借用图像识别、匹配过程的思想——找图像上的特征点。白纸一般是提取不出特征点的,要是提取出来了,那就说明白纸上有东西(洞、褶皱或者异物)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-11
根据不同的需求来进行不同的处理
1 空洞 这个肯定是像素颜色和周边的不同 建议用阈值分割 然后轮廓检测
2 褶皱 这个褶皱肯定会有梯度的变化 建议检测边缘 再计算褶皱的梯度信息
3 划痕 这个和上一个问题相似 但是也有不同 应该是梯度的方向和强度不同(一个是凹一个是凸)
4 斑点 如果只是点点星星的 opencv里也有很多角点检测算法 比如 surf fast ORB等

但是也不是每个必须独立对应着相应的方法,比如求边缘梯度的时候可以一次性处理处理好多信息。你往下做,还有疑问在这里提问就行,不用另开问题了。追问

老师说用到一种污点算法,具体不清楚。。。还请回答有关这个的吧。

另外我的之前问的有一个关键的是,步骤,,,就是设计程序的步骤。
就是,灰度处理,等等后面的

追答

污点算法?这个具体我不清楚,我觉得污点不也是角点吗?至少也是特征点 keypoints, 都差不多。只要有检测特征点的算法都能检测,而且SURF算法对Blur Block就是污点块比较敏感,可以一试。

步骤嘛!这个我真不应该跟你说的很详细,因为图像处理的基本步骤都差不多,先预处理再滤波形态学然后梯度等,我真心希望你能自己试验一下,比如看一下网上的程序自己学习操作一下什么的。

本回答被提问者采纳
相似回答