图片倾斜矫正处理(Hough Transform)

图片倾斜矫正处理(Hough Transform)霍夫变换实现图片角度矫正 图片矫正

大家好,欢迎来到IT知识分享网。

倾斜矫正原理及实现方式

实现步骤:

  1. 边缘检测,将图片转为灰度图,使用Canny边缘检测找到图片中的所有边缘
  2. 使用霍夫变换检测直线
  3. 计算角度:对于每一条直线计算其于水平线的角度,(可以用直线的极坐标表示中的角度得到)
  4. 角度平均:计算所有角度的中位数,用这个角度值来代表图片整体的倾斜角度
  5. 图片旋转:根据该角度对图片进行旋转

Canny边缘检测

Canny边缘检测的实现步骤

  1. 抑制噪声:通过高斯滤波对图像做平滑处理,滤除图像中的噪声,同时保留边缘的细节;
  2. 计算梯度的幅值和方向:使用sobel算子计算图像中每一个像素点的水平方向和垂直方向的梯度值,根据梯度值计算每一个像素点的梯度幅值和方向;
  3. 非极大值抑制:在计算得到的梯度幅值图上进行非极大值抑制,初步筛选边界;
  4. 双阈值方法:设置高阈值和低阈值,将图像中的像素点分为强边缘、弱边缘和非边缘。
    像素值的梯度幅值超过高阈值称为强边缘,被看作是边缘;
    像素的梯度值结余高阈值和低阈值之间,被看做是弱边缘,如果弱边缘与强边缘连接,则该像素视为边缘,否则将其抑制;
    像素的梯度幅值小于低阈值,则该像素为非边缘。


在OpenCV中通过cv2.Canny(image, threshold1, threshold2, edges=None, apertureSize=None, L2gradient=None)实现,
其中第一个参数表示输入的图像;
threshold1, threshold2表示双阈值中的低阈值和高阈值;
edge表示输出图片的大小;
apertureSize表示sobel算子中卷积核的大小;
L2gradient表示梯度如何计算,默认使用:在这里插入图片描述
该参数设置为True,则计算梯度幅值使用:
在这里插入图片描述






非极大值抑制

图片倾斜矫正处理(Hough Transform)

霍夫变换

极坐标上的一个点对应直角坐标中的一条直线;
直角坐标中的一个点对应极坐标中的一条正弦曲线。
直角坐标映射为极坐标:
在这里插入图片描述
极坐标映射为直角坐标:
在这里插入图片描述




  1. Canny边缘检测后得到图像中所有边缘,遍历每一个边缘的像素点映射到极坐标系下。
  2. 该曲线经过的像素点的像素值+1
  3. 极坐标系下每一个元素的数值代表图像中共线的点的个数,
  4. 数值较大的点可以拟合为一条直线,将极坐标下的点的坐标反映射回直角坐标系下,对应一条直线。

图片倾斜矫正处理(Hough Transform)

图片倾斜矫正处理(Hough Transform)

图片倾斜矫正处理(Hough Transform)

图片倾斜矫正处理(Hough Transform)

https://www.bilibili.com/video/BV1Gv4y167t9/?spm_id_from=333.337.search-card.all.click&vd_source=91cfed371d5491e2973d221d250b54ae

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/129715.html

(0)
上一篇 2025-08-22 15:10
下一篇 2025-08-22 15:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信