目录
二值图 矩形框中心旋转
import cv2
import numpy as np
import random
def preprocess_image(img_path):
img = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)
_, img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
return img
def get_min_rect(img):
contours, _ = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
min_rect = cv2.minAreaRect(contours[0])
return min_rect
def transform_rect(rect, scale, angle):
center, size, _ = rect
size = (int(size[0] * scale), int(size[1] * scale))
rot_mat = cv2.getRotationMatrix2D(center, angle, 1.0)
return rot_mat, size
def get_largest_square(rect):
center, size, angle = rect
square_size = min(size)
if size[0] < size[1]:
dx = square_size / 2
dy = 0
else: