# 找到最小外接矩形
rect = cv2.minAreaRect(max_contour)
box = cv2.boxPoints(rect)
box = np.int0(box)
center, size, angle = rect # 外接矩形中心点坐标、尺寸和旋转角度
# 计算透视变换矩阵
M = cv2.getRotationMatrix2D(center, angle, 1)
# 进行透视变换
rotated = cv2.warpAffine(extracted_region, M, (extracted_region.shape[1], extracted_region.shape[0]), flags=cv2.INTER_LINEAR)
rotated_mask = cv2.warpAffine(extracted_region_mask, M, (extracted_region_mask.shape[1], extracted_region_mask.shape[0]), flags=cv2.INTER_LINEAR)
result1 = rotated[int(center[1] - size[1] / 2):int(center[1] + size[1] / 2),
int(center[0] - size[0] / 2):int(center[0] + size[0] / 2)] # 提取ROI
result2 = rotated_mask[int(center[1] - size[1] / 2):int(center[1] + size[1] / 2),
int(center[0] - size[0] / 2):int(center[0] + size[0] / 2)]
透视变换,最小外接矩形转正python
最新推荐文章于 2024-09-10 20:50:08 发布