C++ 检测草图像中的植物
我是计算机视觉方面的新手。 我想在草图像中检测一些植物 原始图像 Canny边缘检测算法 Hough线变换(边缘检测后) 我已经试过:C++ 检测草图像中的植物,c++,opencv,computer-vision,C++,Opencv,Computer Vision,我是计算机视觉方面的新手。 我想在草图像中检测一些植物 原始图像 Canny边缘检测算法 Hough线变换(边缘检测后) 我已经试过: 通过比较区域中白色像素的平均值来去除背景中的草 使用hough线变换算法进行线检测(草添加了错误的线) 你认为检测这种植物的最佳方法是什么?我想到了虚拟解决方案。因为草比植物本身更细致: 使用Canny或任何其他边缘检测器 使用一个窗口(比如10*10)通过图像。对于每个窗口: 计算密度(如果使用Canny,则白色像素数) 将其存储在数组中 使用大
- 通过比较区域中白色像素的平均值来去除背景中的草李>
- 使用hough线变换算法进行线检测(草添加了错误的线)
你认为检测这种植物的最佳方法是什么?我想到了虚拟解决方案。因为草比植物本身更细致:
- 计算密度(如果使用Canny,则白色像素数)
- 将其存储在数组中
只是为了好玩,和胡曼的答案非常相似,只是用标准差代替密度,使图像在没有叶子的地方透明。我在命令行中直接使用ImageMagick:
convert weed.jpg \( +clone -canny 0x1+10%+30% -statistic standarddeviation 10x10 -blur 0x8 -normalize -negate \) -compose copyopacity -composite result.png
我实施了Humam的方法 但在大津算法之后添加了一些步骤:
下一步是检测提取的图像是否是所需的植物。Intreasting任务。。如果可以的话,给我们看一些其他的图片。我在hough line变换后添加了一个图片,但是我现在没有任何其他原始图片。Hougline在我看来可能是一个解决方案。你甚至没有线条。我得到了90%的植物。我使用饱和度和强度图像创建了一个遮罩。植物饱和度低于草饱和度,但植物比背景亮。所以我将两者相乘,增加了植物和背景的对比度。然后,我通过一些形态学操作和抑制高生长来除草frequencies@Piglet请发布一个答案,否则这永远不会发生:DA应该帮助你迈出第二步。很好的一步。。我渴望看到更多的样品从OP,因为我认为这些解决方案(包括我的)将失败。我认为这是有史以来最难的简历问题之一。如果OP能成功的话。我想麻省理工学院会找到他并雇用他:DClever解决方案。然而,与任何其他图像处理方法一样,这很可能只适用于非常特定的图像,而不是一般的图像。但是,对于这个问题的范围,+1:D.@HumamHelfawi Deep learning在物体(包括植物)识别方面取得了巨大的进步,麻省理工学院已经知道:我正要说Deep learning。。。但我害怕看起来像是谁想要一个黑匣子来完成自己的工作:我同意。也许需要某种纹理分析。我知道这种方法对于其他许多图片都会失败——一般的解决方案是非常困难的!