c# - 如何检测与背景颜色相同的物体

标签 c# opencv image-processing computer-vision emgucv

我是 EMGU 和图像处理的新手,我有一个 C# 项目,需要检测透明物体,特别是塑料瓶内的飞蛾翅膀。这里有些例子。

enter image description here
enter image description here

我尝试在 EMGU 中使用 YCbCr,但我无法检测到它,也无法将其与背景区分开来。

另一件事是我试图将它封闭在“受控环境”中(在一个没有光线可以进入的盒子内)并使用 LED 背光。这是可取的吗?或者可以从环境光(荧光灯)吗?这会影响 check out 率吗?照明是否是此类问题的一个因素?

这是我的项目的想法和我使用的东西。基本上,我的项目只是关于使用网络摄像头 (Logitech C910) 从图像中检测透明对象的概念证明。这是我们国家的一个老工业问题的一个例子,当装瓶厂的塑料瓶库存过多并且在使用前就被污染了。飞蛾 body 和飞蛾翅膀是给我们的污染物。此外,这是为了查看网络摄像头是否足以替代工业摄像头用于此应用程序。

我将它放置在受控环境中并使用 LED 灯作为背光(这只是使用原型(prototype)板和用证券纸漫射的高强度 LED 灯制成)。将物体(蛾翅)放入装有水的塑料瓶中,并分成两部分进行测试。第一部分是瓶子没有移动,第二部分是瓶子在传送带上移动但在相同的受控环境中。我做了所有需要的硬件,所以这不再是问题了。飞蛾的 body 是可控的(我认为)可以检测到,但飞蛾的翅膀让我摸不着头脑。

任何帮助将不胜感激。先感谢您!

最佳答案

考虑使用尽可能多的视觉提示:
blur/focus
形状 - 你可以使用 active contour or findControus()在干净的图像上
grabcut 中的位置、强度和纹理框架
您可以尝试红外照明,以防飞蛾和玻璃对它的 react 不同

关于c# - 如何检测与背景颜色相同的物体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22254362/

相关文章:

c++ - 并行 SURF 和 SIFT 计算

java - 在 Android 中对图像进行二值化

c# - 如何根据 Dictionary int 值订购 Dictionary<int, string> 列表?

c# - 假设盐是随机的,是否可以从密码(与 key )派生初始化 vector ?

c++ - 无法在 OpenCV 中获取直方图图像

opencv - OpenCV-查找与静态深度倾斜矩形的角度

python - OpenCV Python : fast solution for 3-channel float32 image reading?

image-processing - 稀疏光流和密集光流有什么区别?

C# Xamarin IOS : Equivalent of SystemClock. C# IOS Xamarin 中的 ElapsedRealtime()

c# - Visual Studio : find all references of a specific type