我想创建一个简单的openCV应用程序,能够在各种光照条件下准确检测红色(认为红色独奏杯)。
哪个是最好的色彩空间(RGB,HSV等),我应该如何实现这样的效果呢?
我是新手使用openCV,这将是我的第一个项目,所以任何例子都会非常感激。
有一些例子用于检测,但没有一个例子说明颜色如何根据明亮的光线,阴影,低光等呈现出不同的色调和色调以及如何补偿它。
我计划在嵌入式项目中使用它,这样我就可以有一个光电二极管来检测环境光的数量,如果这些信息有帮助......
谢谢!
答案 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一样真正变得毛茸茸。
因此,在您有机会了解它如何影响您的设置之前,最好忽略该问题。您的照明限制可能很简单(例如明亮与昏暗的照片)或者可能很复杂(例如,在黑暗中呈蓝色,在明亮光下呈现黄色)。