标签:java image-processing opencv javacv
目前我正在开发javacv上的图像处理项目.在那里我必须识别特定多边形内的U形.
这是两种类型的图像,我必须识别图像中的图像是否具有两个U形或单个U形.我经历了很多教程,但我无法找到适当的指导方针来澄清这一点.所以请专家可以帮助澄清这个问题.如果您可以使用opencv或javacv提供一些代码示例,我们非常感谢.
解决方法:
如果所有图像都具有相似的图案,则只需使用轮廓边界矩形的纵横比(宽度/高度)将其过滤掉即可.
即,如果找到所有轮廓的边界矩形,则外形的aspect_ratio接近1.
但U形的aspect_ratio超过10.
下面是一个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()
以下是结果:
标签:java,image-processing,opencv,javacv 来源: https://codeday.me/bug/20190626/1289653.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。