我正在用java开发一个opencv应用程序,在该应用程序中,我需要检测产品上的不同标记。在该图像中的https://i.stack.imgur.com/ONOBx.jpg,我需要识别非素食标记。
因为我对它是新手,所以我需要帮助知道哪些概念可以用于它。我需要识别输入图像上的https://i.stack.imgur.com/gy4wI.png
发布于 2017-01-17 06:16:05
经过一番努力,我终于想出了一个粗略的解决办法。
First,我分离了veg和non标签.

&

现在,为了使非素食标签与图像完全匹配,我将其调整到一个特定的级别:
small = cv2.resize(nveg, (0,0), fx=0.12, fy=0.12)

现在,我执行了与模板匹配的,正如我在注释部分中所说的那样。若要了解有关此主题的更多信息,请参见访问此页面。
使用它,我得到了图像中非素食标签的“最大可能位置”。
res = cv2.matchTemplate(food, small, cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)在下面的图像中,注意非蔬菜标记位置上的亮点:

现在,使用max_loc变量,我将元组值添加到调整大小的非素食标签的大小中,并将其框设为矩形,如下所示:

当我用max_loc给它贴上标签时,你可以看到非蔬菜标记上的黑点。

希望这能帮上忙。:)
https://stackoverflow.com/questions/41608745
复制相似问题