我正在开发板检测算法。 我做了板定位,现在出现了新的问题。 我想检测平板图像旋转角度并在必要时旋转。 但是如何检测呢? 我尝试使用cv2.HoughLinesP函数,但结果与附加图像相同 http://postimg.org/image/vis8errzn/
y = area.shape[0]
x = area.shape[1]
#############################################################################
#If necessary rotate image by angle detected with Hough transformation
gray = cv2.cvtColor(area,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,150,apertureSize = 3)
minLineLength = 10
maxLineGap = 30
lines = cv2.HoughLinesP(edges,1,math.pi/180,100,minLineLength,maxLineGap)
if(lines != None):
for x1,y1,x2,y2 in lines[0]:
cv2.line(gray,(x1,y1),(x2,y2),(0,255,0),2)
a = ((y2-y1)*1.0)/((x2-x1)*1.0)
print 'a = ', a
print 'lines = ', lines
答案 0 :(得分:-1)
我不是肯定的是什么样的"盘"你指的是但我认为它是一些具有显着特征的平面物体。在任何一种情况下,这是OpenCv的人们的一个很好的教程,解释如何确定我认为你的问题是什么:
http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html
此程序的基本运行是:
- 给出相关印版的图像文件(在您想要考虑的方向上)
- 检测两个图像中的要素点
- 在这些要点上使用描述符来表示"含义"
- 匹配两个图像之间的描述符
- 计算两幅图像之间的同位素(给出你正在寻找的旋转矩阵
有关)
所有这一切都可以通过opencv标准库函数来完成。