Lip*_*ick 6 python opencv computer-vision
我想用Python创建一个脚本(使用OpenCV库)来确定图片中的标记.标记看起来像这样:
加载图像后,脚本应该打印图片中的标记(返回标记数).例如,如果我加载这张图片:
对于这个图像,脚本应该返回三个数字:1,2和3.我有一个脚本,它加载图像并识别图形(圆形,正方形等 - 在下面的脚本中只有正方形)但我不知道整个标记,由几个数字组成.有任何想法吗?请提供有关算法或任何解决方案的任何建议.
import numpy as np
import cv2
img = cv2.imread('B.jpg')
gray = cv2.imread('B.jpg',0)
ret,thresh = cv2.threshold(gray,120,255,1)
contours,h = cv2.findContours(thresh,1,2)
for cnt in contours:
approx = cv2.approxPolyDP(cnt,0.01*cv2.arcLength(cnt,True),True)
print len(approx)
if len(approx)==4:
print "square"
cv2.drawContours(img,[cnt],0,(0,0,255))
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
但显然它不是我需要它只围绕矩形.感谢您的任何提示和帮助.
首先,我尝试使用特征匹配(@tfv 用户的提议),但这可能不是一个好的解决方案。在许多方法中,它给出太多匹配(但图像完全不同)或太少匹配(当图像相同时)
现在我将尝试使用@Micka 的算法,但我对第二点和第三点有问题。我上面帖子中的代码找到了方块。如何将新矩形另存为新图像?
归档时间: |
|
查看次数: |
1586 次 |
最近记录: |