现在有一张烟丝的照片,想识别出图片里的分布的各种烟丝轮廓,烟丝可能存在交错在一起,并排在一起,形状也是各种各样。具体图片如下:

请问问各位,这样的图片如何去识别。有什么具体的步骤。需要采用哪些方法?我想利用opencv去识别,主要想知道采用什么样的办法方式去处理。
那就要判断大小,再加上规则程度,如果过于不规则,那可能就是多个交错起来,如果是办法过大(相对),就可能是一堆,当然如果非常小的也可以过滤掉
你能给点具体步骤和思路嘛?每根烟丝的形状也就几种情况,不会过于不规则。
我没有弄过这些东西,所以没有好的办法。
只是用opencv弄过一个简单的轮廓检测demo(这个很简单,就是调用opencv的一个函数)。
我的思路是,在opencv检测轮廓的基础上,对检测到的轮廓进行逐个计算,通过边缘点的检测来确定这个区域的尺寸、大致形状等。具体的检测办法,就得楼主找好的算法了。另外opencv对轮廓的检测不知道是否存在某些条件,比如对图片质量的要求,如果有要求,那结果的准确度还得和图片的清晰度有关,就得对图片的质量提出一定的要求才比较了
那你找轮廓试试,假如找到100个轮廓,假如规定像素点数大于50的是重叠在一起的,不做统计
然后遍历像素点数小于50的进行统计,1-10的多少个,11-20的多少个。。。
当然最好把烟丝弄开一些,这是没啥技术难度且合理的预先处理,弄开了统计的轮廓数就多,统计的就能更准确的反应烟丝情况。



我二值化的参数是115。从现象看我觉着轮廓像素数小于75的就是肉眼不可见了,可见的大约90多个,当然也有不准的或背景污点
建议上边说了,我觉着你是要统计烟叶的大小、比例判断烟叶的好坏。步骤就是拍一张烟叶散开的照片,抓取所有的轮廓,然后自定义轮廓大小,比如说轮廓像素点1000以上的统计有多少个,500-1000的有多少个等等,1000以上的占比多说明烟叶整齐,200以下得多说明烟叶比较碎,不好等等,反正就是自己定义一个标准,这些你应该比较专业。


我二值化的参数是115。从现象看我觉着轮廓像素数小于75的就是肉眼不可见了,可见的大约90多个,当然也有不准的或背景污点
想听听您的建议!
建议上边说了,我觉着你是要统计烟叶的大小、比例判断烟叶的好坏。步骤就是拍一张烟叶散开的照片,抓取所有的轮廓,然后自定义轮廓大小,比如说轮廓像素点1000以上的统计有多少个,500-1000的有多少个等等,1000以上的占比多说明烟叶整齐,200以下得多说明烟叶比较碎,不好等等,反正就是自己定义一个标准,这些你应该比较专业。
你右边列表框里最左边那列编号是怎么处理的?
我这个就是单纯找轮廓,序号就是递增序号,假如你搜索到100个轮廓,先按轮廓像素点数排序,然后一个个显示出来,第一个就是1,第100就是100


我二值化的参数是115。从现象看我觉着轮廓像素数小于75的就是肉眼不可见了,可见的大约90多个,当然也有不准的或背景污点
想听听您的建议!
建议上边说了,我觉着你是要统计烟叶的大小、比例判断烟叶的好坏。步骤就是拍一张烟叶散开的照片,抓取所有的轮廓,然后自定义轮廓大小,比如说轮廓像素点1000以上的统计有多少个,500-1000的有多少个等等,1000以上的占比多说明烟叶整齐,200以下得多说明烟叶比较碎,不好等等,反正就是自己定义一个标准,这些你应该比较专业。
你右边列表框里最左边那列编号是怎么处理的?
我这个就是单纯找轮廓,序号就是递增序号,假如你搜索到100个轮廓,先按轮廓像素点数排序,然后一个个显示出来,第一个就是1,第100就是100
单一的凭像素是不是也不科学,因为这个物体的轮廓特征也得考虑。
试试深度学习方法,就是计算资源消耗太大。图像分割算法,能实现像素级的分割。
这个问题好难呀。 我以为用photoshop就行了。

没太理解你的目的是什么,识别每根烟丝还是紧紧提取图片中的烟丝?如果是识别具体的东西,我没啥好思路。如果是提取出所有烟丝的部分那你可以先看下所有照片的背景色是否一致,如果一致就整张图去色或通过通道将图片处理成黑白两色(具体代码只能你去找案例,我只是之前看图像识别的一些文档时见别人的解决方案中用的方法是这样的),黑白的图片在通过“色阶”的算法得出一张高对比度的图片,这时你在去识别轮廓就十分容易了。其实这个方法基本就是PS的通道抠图,只是用代码实现效果而已。
没太理解你的目的是什么,识别每根烟丝还是紧紧提取图片中的烟丝?如果是识别具体的东西,我没啥好思路。如果是提取出所有烟丝的部分那你可以先看下所有照片的背景色是否一致,如果一致就整张图去色或通过通道将图片处理成黑白两色(具体代码只能你去找案例,我只是之前看图像识别的一些文档时见别人的解决方案中用的方法是这样的),黑白的图片在通过“色阶”的算法得出一张高对比度的图片,这时你在去识别轮廓就十分容易了。其实这个方法基本就是PS的通道抠图,只是用代码实现效果而已。
提取各种形状烟丝的轮廓,做对比!
那我觉得我说的方法应该是可行的,最后剩下的差值图提取轮廓应该会很好提取。
用OpenCV找轮廓是比较容易的,关键的问题是,你怎么区分这是一根烟叶的轮廓还是以两根或多根烟叶叠在一起的,误判的可能性很高