Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 检测草图像中的植物_C++_Opencv_Computer Vision - Fatal编程技术网

C++ 检测草图像中的植物

C++ 检测草图像中的植物,c++,opencv,computer-vision,C++,Opencv,Computer Vision,我是计算机视觉方面的新手。 我想在草图像中检测一些植物 原始图像 Canny边缘检测算法 Hough线变换(边缘检测后) 我已经试过: 通过比较区域中白色像素的平均值来去除背景中的草 使用hough线变换算法进行线检测(草添加了错误的线) 你认为检测这种植物的最佳方法是什么?我想到了虚拟解决方案。因为草比植物本身更细致: 使用Canny或任何其他边缘检测器 使用一个窗口(比如10*10)通过图像。对于每个窗口: 计算密度(如果使用Canny,则白色像素数) 将其存储在数组中 使用大

我是计算机视觉方面的新手。 我想在草图像中检测一些植物

原始图像

Canny边缘检测算法

Hough线变换(边缘检测后)

我已经试过:

  • 通过比较区域中白色像素的平均值来去除背景中的草
  • 使用hough线变换算法进行线检测(草添加了错误的线)

你认为检测这种植物的最佳方法是什么?

我想到了虚拟解决方案。因为草比植物本身更细致:

  • 使用Canny或任何其他边缘检测器
  • 使用一个窗口(比如10*10)通过图像。对于每个窗口:
    • 计算密度(如果使用Canny,则白色像素数)
    • 将其存储在数组中
  • 使用大津算法对数组中的值设置阈值。较小的值表示作为设备一部分的窗口
  • 将所有需要的窗口重新映射到原始图片
  • 如果窗口不是对象的一部分,但同时被对象的窗口包围,则它是对象的一部分

  • 只是为了好玩,和胡曼的答案非常相似,只是用标准差代替密度,使图像在没有叶子的地方透明。我在命令行中直接使用ImageMagick:

    convert weed.jpg \( +clone -canny 0x1+10%+30% -statistic standarddeviation 10x10 -blur 0x8 -normalize -negate \) -compose copyopacity -composite result.png
    

    我实施了Humam的方法

    但在大津算法之后添加了一些步骤:

  • 完成每个黑色连接的组件
  • 使用矩阵减法提取遮罩
  • 将遮罩存储在向量中
  • 按面积大小排序(=总和(掩码))
  • 选择最大的面具(=植物)
  • 在植物面膜上:再次执行步骤1-3
  • 从植物面罩上取下所有小面罩
  • 我从工厂里得到了一些旧的和坏的图像,我将在接下来的几天在这些图像上测试算法。 不幸的是,在我的国家现在是冬天,草地上覆盖着雪。所以我得等上几个星期才能从这棵植物上拍出合适的照片

    提取结果。


    下一步是检测提取的图像是否是所需的植物。

    Intreasting任务。。如果可以的话,给我们看一些其他的图片。我在hough line变换后添加了一个图片,但是我现在没有任何其他原始图片。Hougline在我看来可能是一个解决方案。你甚至没有线条。我得到了90%的植物。我使用饱和度和强度图像创建了一个遮罩。植物饱和度低于草饱和度,但植物比背景亮。所以我将两者相乘,增加了植物和背景的对比度。然后,我通过一些形态学操作和抑制高生长来除草frequencies@Piglet请发布一个答案,否则这永远不会发生:DA应该帮助你迈出第二步。很好的一步。。我渴望看到更多的样品从OP,因为我认为这些解决方案(包括我的)将失败。我认为这是有史以来最难的简历问题之一。如果OP能成功的话。我想麻省理工学院会找到他并雇用他:DClever解决方案。然而,与任何其他图像处理方法一样,这很可能只适用于非常特定的图像,而不是一般的图像。但是,对于这个问题的范围,+1:D.@HumamHelfawi Deep learning在物体(包括植物)识别方面取得了巨大的进步,麻省理工学院已经知道:我正要说Deep learning。。。但我害怕看起来像是谁想要一个黑匣子来完成自己的工作:我同意。也许需要某种纹理分析。我知道这种方法对于其他许多图片都会失败——一般的解决方案是非常困难的!