下图将说明我想要的内容。
图像包含4个参考矩形,它是图像校正的基础。假设,Image包含一些其他信息,如文本,圆形和矩形。现在,我想写一个脚本来根据四个矩形拉直图像。我的结果图像应该拉直。所以我可以在纠正它之后提取一些信息。 我正在使用OpenCV python,请告诉我一种方法来实现这一目标。 请将一些代码作为OpenCV Python的示例展示。enter image description here之后它必须像enter image description here
答案 0 :(得分:1)
我终于解决了它。
contours, hierarchy = cv2.findContours(img_dilate.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
points=[]
i=0
for contour in contours:
area = cv2.contourArea(contour)
if area > 10 and area < 800:
x,y,w,h = cv2.boundingRect(contour)
cv2.rectangle(img_dilate,(x,y),(x+w,y+h),(0,255,0),2)
center = (int(x),int(y))
position = (center[0], center[1])
points.append(position)
print position,i
text_color = (255,0,255)
cv2.putText(resized,str(i+1), position, cv2.FONT_HERSHEY_SIMPLEX, 0.5, text_color, 2)
i=i+1
pnts = np.array(points)
rect = cv2.minAreaRect(pnts)
box = cv2.cv.BoxPoints(rect)
box = np.int0(box)
cv2.drawContours(resized,[box],0,(0,255,0),2)
root_mat = cv2.getRotationMatrix2D(rect[0], angle , 1)
rotated = cv2.warpAffine(resized, root_mat, dim, flags=cv2.INTER_CUBIC)
cv2.getRectSubPix(rotated, dim, center)