在我们的日常生活中,所碰到的图像往往都有一定的倾斜。那么,如何用OpenCV来获取图像的旋转角度呢?
我们以下面的图片为例,简单介绍如何用OpenCV来获取图像的旋转角度。

4.png
可以看到,该图像存在着许多噪声,且是彩色图片,因此,需要对图像做预处理。
预处理
图像的预处理包括去除边缘,去除噪声(两条灰色线),滤波,二值化等,具体处理的Python代码如下:
#-*- coding: utf-8 -*-
importcv2
imagepath= 'F://CHN_Char/4.png'img= cv2.imread(imagepath, 1)#将图片的边缘变为白色
height, width = img.shape[0:2]for i inrange(width):
img[0, i]= [255]*3img[height-1, i] = [255]*3
for j inrange(height):
img[j, 0]= [255]*3img[j, width-1] = [255]*3
#去掉灰色线(即噪声)
for i inrange(height):for j inrange(width):if list(img[i,j]) == [204,213,204]:
img[i,j]=[255]*3
#把图片转换为灰度模式
gray =cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#中值滤波
blur = cv2.medianBlur(gray, 3) #模板大小3*3#二值化
ret,thresh = cv2.thresh

本文介绍了如何使用OpenCV处理图像,通过预处理、找到最小外接矩形和旋转角度,来获取图像的旋转角度。示例代码展示了从彩色图像到二值图像的转换,然后找出图像的旋转角度,并应用旋转校正。
最低0.47元/天 解锁文章
752

被折叠的 条评论
为什么被折叠?



