4
目前我正在开发javacv上的图像处理项目。我必须在特定的多边形内识别U形。如何使用opencv/javacv识别图像中的U形状?
这是两种类型的图像,我必须确定图像是否在图像中具有两个U形或单个U形。我已经通过了许多教程,但我无法找到适当的指导方针来澄清这一点。所以请专家可以帮助澄清这个问题。它非常感谢,如果你可以提供一些使用opencv或javacv的代码示例。
目前我正在开发javacv上的图像处理项目。我必须在特定的多边形内识别U形。如何使用opencv/javacv识别图像中的U形状?
这是两种类型的图像,我必须确定图像是否在图像中具有两个U形或单个U形。我已经通过了许多教程,但我无法找到适当的指导方针来澄清这一点。所以请专家可以帮助澄清这个问题。它非常感谢,如果你可以提供一些使用opencv或javacv的代码示例。
如果所有的图像具有相似的图案,只需使用的轮廓的边界矩形的纵横比(宽度/高度),以它们滤掉。
也就是说,如果你发现所有的边界轮廓的矩形,外形具有接近1
但U形的ASPECT_RATIO将有超过10个
下面的ASPECT_RATIO是一个Python代码:
import cv2
import numpy as np
img = cv2.imread('sofud.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(gray,127,255,1)
contours,hierarchy = cv2.findContours(thresh,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
for cnt in contours:
x,y,w,h = cv2.boundingRect(cnt)
if 10 < w/float(h) or w/float(h) < 0.1:
cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),2)
cv2.imshow('res',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
下面是结果:
您从哪个代码行中选择轮廓绘制矩形的干草? – 2012-07-09 02:29:35
首先使用“boundingrect”找到轮廓的矩形参数。然后使用“矩形” – 2012-07-09 04:24:30