OpenCV - 使用Java识别图像中的特定对象

时间:2017-01-12 08:53:30

标签: java opencv image-processing feature-extraction orb

我正在java中开发一个opencv应用程序,我需要检测产品上的不同标记。I have attached the input image below 在那张图片中,我需要识别非蔬菜标记。

由于我是新手,我需要帮助才能知道可以使用哪些概念。 我需要在输入图像上识别these marks

1 个答案:

答案 0 :(得分:0)

经过艰苦的努力,我得出了一个粗略的解决方案。

首先 ,我将 veg 非veg 标签分开。

enter image description here& enter image description here

现在,为了让非veg 标签与图像完美契合,我将其重新调整为特定级别:

small = cv2.resize(nveg, (0,0), fx=0.12, fy=0.12) 

enter image description here

现在我按照我在评论中所说的那样执行了 模板匹配 部分。要详细了解此主题VISIT THIS PAGE

使用它我获得了' 最大可能位置'图像中的非蔬菜标签。

res = cv2.matchTemplate(food, small, cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)

在下图中注意非蔬菜标记位置的亮点:

enter image description here

现在使用max_loc变量,我将元组值添加到已调整大小的非veg标签的大小,并用矩形框起来,如下所示:

enter image description here

当我使用max_loc标记时,您可以看到非素食标记上的黑点:

enter image description here

希望这有帮助。 :)