检测对象颜色各种照明OpenCV Java

时间:2017-06-07 03:01:18

标签: java opencv embedded

我想创建一个简单的openCV应用程序,能够在各种光照条件下准确检测红色(认为红色独奏杯)。

哪个是最好的色彩空间(RGB,HSV等),我应该如何实现这样的效果呢?

我是新手使用openCV,这将是我的第一个项目,所以任何例子都会非常感激。

有一些例子用于检测,但没有一个例子说明颜色如何根据明亮的光线,阴影,低光等呈现出不同的色调和色调以及如何补偿它。

我计划在嵌入式项目中使用它,这样我就可以有一个光电二极管来检测环境光的数量,如果这些信息有帮助......

谢谢!

2 个答案:

答案 0 :(得分:2)

所以,我找到了一个很好的解决方案。我从本教程开始:

http://opencv-java-tutorials.readthedocs.io/en/latest/08-object-detection.html

它允许您动态移动HSV值,以便您可以尝试不同的照明条件。因此,在此之后,我能够找出最适合不同条件的值。接下来,我会允许程序一点一点地改变hsv值,希望根据我的实验结果找到杯子。

当程序找到一个感觉足够好的物体时,会在它周围绘制轮廓。

编辑:通过增加“模糊”的数量,我能够更有效地检测对象。

对不起,如果我使用不好的术语。我是新来的。

答案 1 :(得分:0)

试试this tutorial project。它以最简单的方式使用OpenCV检测颜色:

# find the colors within the specified boundaries and apply
# the mask
mask = cv2.inRange(image, lower, upper)
output = cv2.bitwise_and(image, image, mask = mask)

它是Python,但该代码非常简单,可以显示它是如何工作的。

尝试使用您的设置首先获得的图片。第一次尝试快速而简单。

在你弄乱照明之前,检测红色是相当简单的。那时,问题可能像the dress一样真正变得毛茸茸。

因此,在您有机会了解它如何影响您的设置之前,最好忽略该问题。您的照明限制可能很简单(例如明亮与昏暗的照片)或者可能很复杂(例如,在黑暗中呈蓝色,在明亮光下呈现黄色)。