旋转有长方形目标的图像,校正为水平方向,只能水平校正,不能三维校正。
只能对水平倾斜小于一定角度的图像进行调整。并且为了达到鲁棒性,牺牲了部分正确率,目的是为了在不犯错的情况下进行水平校正。
原理:使用霍夫变换来寻找图像中的目标斜率,找到最频繁的一条斜率作为校正方向,使用scipy.ndimage进行校正
github地址:https://github.com/18150167970/image_process_tool/blob/master/rotate_image.py
import numpy as np
import cv2
import math
from scipy import ndimage
is_print = False
def rotate_image(img):
""" 获得出现最多次的线作为图像的方向
image(Mat): image
:return
rhoLevelAll[index]: rho,
slopeLevelAll[index]: theta
""