广告
淘宝内部优惠券
当前位置: 开发异常方案库» VC/MFC » 这样的一张烟丝图片,想识别里面烟丝的尺寸,识别出烟丝的轮廓。

这样的一张烟丝图片,想识别里面烟丝的尺寸,识别出烟丝的轮廓。

开发异常方案库  收集整理于:2020-05-05 11:26:00  浏览:66次
现在有一张烟丝的照片,想识别出图片里的分布的各种烟丝轮廓,烟丝可能存在交错在一起,并排在一起,形状也是各种各样。具体图片如下: 请问问各位,这样的图片如何去识别。有什么具体的步骤。需要采用哪些方法?我想利用opencv去识别,主要想知道采用什么样的办法方式去处理。

------网友观点--------------------
堆在一起的也要一根根形成各自的轮廓?

------网友观点--------------------
引用 1 楼 red-fly 的回复:
堆在一起的也要一根根形成各自的轮廓?
前期主要把散落的烟丝轮廓识别出来

------网友观点--------------------
那就要判断大小,再加上规则程度,如果过于不规则,那可能就是多个交错起来,如果是办法过大(相对),就可能是一堆,当然如果非常小的也可以过滤掉

------网友观点--------------------
引用 3 楼 red-fly 的回复:
那就要判断大小,再加上规则程度,如果过于不规则,那可能就是多个交错起来,如果是办法过大(相对),就可能是一堆,当然如果非常小的也可以过滤掉
你能给点具体步骤和思路嘛?每根烟丝的形状也就几种情况,不会过于不规则。

------网友观点--------------------
引用 3 楼 red-fly 的回复:
那就要判断大小,再加上规则程度,如果过于不规则,那可能就是多个交错起来,如果是办法过大(相对),就可能是一堆,当然如果非常小的也可以过滤掉
请大师给小弟支招么

------网友观点--------------------
我没有弄过这些东西,所以没有好的办法。 只是用opencv弄过一个简单的轮廓检测demo(这个很简单,就是调用opencv的一个函数)。 我的思路是,在opencv检测轮廓的基础上,对检测到的轮廓进行逐个计算,通过边缘点的检测来确定这个区域的尺寸、大致形状等。具体的检测办法,就得楼主找好的算法了。另外opencv对轮廓的检测不知道是否存在某些条件,比如对图片质量的要求,如果有要求,那结果的准确度还得和图片的清晰度有关,就得对图片的质量提出一定的要求才比较了

------网友观点--------------------
引用 4 楼 ruan1978 的回复:
Quote: 引用 3 楼 red-fly 的回复:
那就要判断大小,再加上规则程度,如果过于不规则,那可能就是多个交错起来,如果是办法过大(相对),就可能是一堆,当然如果非常小的也可以过滤掉
你能给点具体步骤和思路嘛?每根烟丝的形状也就几种情况,不会过于不规则。
怎么可能就几种,你看看图片,大的小的,成粉末状的

------网友观点--------------------
引用 7 楼 tiger波波 的回复:
Quote: 引用 4 楼 ruan1978 的回复:
Quote: 引用 3 楼 red-fly 的回复:
那就要判断大小,再加上规则程度,如果过于不规则,那可能就是多个交错起来,如果是办法过大(相对),就可能是一堆,当然如果非常小的也可以过滤掉
你能给点具体步骤和思路嘛?每根烟丝的形状也就几种情况,不会过于不规则。
怎么可能就几种,你看看图片,大的小的,成粉末状的
那如果先是简单的几种呢?

------网友观点--------------------
那你找轮廓试试,假如找到100个轮廓,假如规定像素点数大于50的是重叠在一起的,不做统计 然后遍历像素点数小于50的进行统计,1-10的多少个,11-20的多少个。。。 当然最好把烟丝弄开一些,这是没啥技术难度且合理的预先处理,弄开了统计的轮廓数就多,统计的就能更准确的反应烟丝情况。

------网友观点--------------------
引用 9 楼 tiger波波 的回复:
那你找轮廓试试,假如找到100个轮廓,假如规定像素点数大于50的是重叠在一起的,不做统计 然后遍历像素点数小于50的进行统计,1-10的多少个,11-20的多少个。。。 当然最好把烟丝弄开一些,这是没啥技术难度且合理的预先处理,弄开了统计的轮廓数就多,统计的就能更准确的反应烟丝情况。
我把烟丝分开,拍了照,您看看。

------网友观点--------------------
我二值化的参数是115。从现象看我觉着轮廓像素数小于75的就是肉眼不可见了,可见的大约90多个,当然也有不准的或背景污点

------网友观点--------------------
引用 11 楼 tiger波波 的回复:
我二值化的参数是115。从现象看我觉着轮廓像素数小于75的就是肉眼不可见了,可见的大约90多个,当然也有不准的或背景污点
想听听您的建议!

------网友观点--------------------
你这个项目应该是中烟的,中烟不缺钱,你肥的很

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

------网友观点--------------------
引用 16 楼 tiger波波 的回复:
Quote: 引用 12 楼 ruan1978 的回复:
Quote: 引用 11 楼 tiger波波 的回复:
我二值化的参数是115。从现象看我觉着轮廓像素数小于75的就是肉眼不可见了,可见的大约90多个,当然也有不准的或背景污点
想听听您的建议!
建议上边说了,我觉着你是要统计烟叶的大小、比例判断烟叶的好坏。步骤就是拍一张烟叶散开的照片,抓取所有的轮廓,然后自定义轮廓大小,比如说轮廓像素点1000以上的统计有多少个,500-1000的有多少个等等,1000以上的占比多说明烟叶整齐,200以下得多说明烟叶比较碎,不好等等,反正就是自己定义一个标准,这些你应该比较专业。
你右边列表框里最左边那列编号是怎么处理的?

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

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

------网友观点--------------------
引用 19 楼 ruan1978的回复:
Quote: 引用 18 楼 tiger波波 的回复:
Quote: 引用 17 楼 ruan1978 的回复:
Quote: 引用 16 楼 tiger波波 的回复:
Quote: 引用 12 楼 ruan1978 的回复:
Quote: 引用 11 楼 tiger波波 的回复:
我二值化的参数是115。从现象看我觉着轮廓像素数小于75的就是肉眼不可见了,可见的大约90多个,当然也有不准的或背景污点
想听听您的建议!
建议上边说了,我觉着你是要统计烟叶的大小、比例判断烟叶的好坏。步骤就是拍一张烟叶散开的照片,抓取所有的轮廓,然后自定义轮廓大小,比如说轮廓像素点1000以上的统计有多少个,500-1000的有多少个等等,1000以上的占比多说明烟叶整齐,200以下得多说明烟叶比较碎,不好等等,反正就是自己定义一个标准,这些你应该比较专业。
你右边列表框里最左边那列编号是怎么处理的?
我这个就是单纯找轮廓,序号就是递增序号,假如你搜索到100个轮廓,先按轮廓像素点数排序,然后一个个显示出来,第一个就是1,第100就是100
单一的凭像素是不是也不科学,因为这个物体的轮廓特征也得考虑。
轮廓就是一个点集,也是由像素点形成的。我觉得可以将提取到的轮廓进行拟合,然后对多边形尺寸和横纵比等进行统计分类

------网友观点--------------------
我想要烟丝,你居然要分辨,用头发更好

------网友观点--------------------
引用 22 楼 lonelinesss 的回复:
我想要烟丝,你居然要分辨,用头发更好
你想要分隔的烟丝?

------网友观点--------------------
试试深度学习方法,就是计算资源消耗太大。图像分割算法,能实现像素级的分割。

------网友观点--------------------
引用 24 楼 data97 的回复:
试试深度学习方法,就是计算资源消耗太大。图像分割算法,能实现像素级的分割。
是的,需要大量计算,占用机器时间。

------网友观点--------------------
高人,学习学习!!支持!!!

------网友观点--------------------
高人,学习学习!!支持!!!

------网友观点--------------------
引用 27 楼 JinTian133 的回复:
高人,学习学习!!支持!!!
有什么高见,请赐教!

------网友观点--------------------
都是大神级的 学习一下

------网友观点--------------------
天哪,厉害了

------网友观点--------------------
这个问题好难呀。 我以为用photoshop就行了。

------网友观点--------------------
引用 31 楼 A-Helen 的回复:
这个问题好难呀。 我以为用photoshop就行了。
ps 也许也能做一部分工作。

------网友观点--------------------
没太理解你的目的是什么,识别每根烟丝还是紧紧提取图片中的烟丝?如果是识别具体的东西,我没啥好思路。如果是提取出所有烟丝的部分那你可以先看下所有照片的背景色是否一致,如果一致就整张图去色或通过通道将图片处理成黑白两色(具体代码只能你去找案例,我只是之前看图像识别的一些文档时见别人的解决方案中用的方法是这样的),黑白的图片在通过“色阶”的算法得出一张高对比度的图片,这时你在去识别轮廓就十分容易了。其实这个方法基本就是PS的通道抠图,只是用代码实现效果而已。

------网友观点--------------------
高人,学习学习!!支持!!!

------网友观点--------------------
引用 33 楼 SayoKun 的回复:
没太理解你的目的是什么,识别每根烟丝还是紧紧提取图片中的烟丝?如果是识别具体的东西,我没啥好思路。如果是提取出所有烟丝的部分那你可以先看下所有照片的背景色是否一致,如果一致就整张图去色或通过通道将图片处理成黑白两色(具体代码只能你去找案例,我只是之前看图像识别的一些文档时见别人的解决方案中用的方法是这样的),黑白的图片在通过“色阶”的算法得出一张高对比度的图片,这时你在去识别轮廓就十分容易了。其实这个方法基本就是PS的通道抠图,只是用代码实现效果而已。
提取各种形状烟丝的轮廓,做对比!

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

------网友观点--------------------

------网友观点--------------------
引用 7 楼 tiger波波 的回复:
Quote: 引用 4 楼 ruan1978 的回复:
Quote: 引用 3 楼 red-fly 的回复:
那就要判断大小,再加上规则程度,如果过于不规则,那可能就是多个交错起来,如果是办法过大(相对),就可能是一堆,当然如果非常小的也可以过滤掉
你能给点具体步骤和思路嘛?每根烟丝的形状也就几种情况,不会过于不规则。
怎么可能就几种,你看看图片,大的小的,成粉末状的
看不出,比较乱呀

------网友观点--------------------
这是啥牌子的香烟,烟丝看上去不怎么样

------网友观点--------------------
引用 39 楼 youke321zou 的回复:
这是啥牌子的香烟,烟丝看上去不怎么样
不知道什么牌子的。

------网友观点--------------------
用OpenCV找轮廓是比较容易的,关键的问题是,你怎么区分这是一根烟叶的轮廓还是以两根或多根烟叶叠在一起的,误判的可能性很高

------网友观点--------------------
引用 41 楼 woshi_hujunjun 的回复:
用OpenCV找轮廓是比较容易的,关键的问题是,你怎么区分这是一根烟叶的轮廓还是以两根或多根烟叶叠在一起的,误判的可能性很高
是不是通过分类贝叶斯方式?

------网友观点--------------------
感谢楼主分享!!!!
发布此文章仅为传递网友分享,不代表本站观点,若侵权请联系我们删除,本站将不对此承担任何责任。
软件开发 程序错误 异常 ybaby.netCopyright © 2020-2026  ybaby 版权所有  桂ICP备17004385号-2 网站地图