MATLAB基于Randon变换的图像倾斜校正算法及实现

本文介绍了Radon变换的基本原理及其在图像处理中的应用。通过将图像转换为灰度图并进行边缘检测,最终实现对图像中直线的倾斜角度测量与校正。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Radon变换的基本原理:
一个平面内沿不同的直线(直线与原点的距离为d,方向角为alfa)对f(x,y)做线积分,得到的像F(d,alfa)就是函数f的Radon变换。也就是说,平面(d,alfa)的每个点的像函数值对应了原始函数的某个线积分值。

Radon变换的基本思想:
Radon变换可以理解为图像在ρθ空间的投影,ρθ空间的每一点对应一条直线,而Radon变换是图像像素点在每一条直线上的积分。因此,图像中高灰度值的直线会在ρθ空间形成亮点,而低灰度值的线段在ρθ空间形成暗点。对直线的检测转化为在变换区域对亮点、暗点的检测。

具体的实现步骤如下:
读取图像,转换为灰度图像;
去除离散噪声点,边缘检测;
获取倾斜角度(最亮的点);
倾斜校正;
MATLAB代码实现如下
clear all 
clc
close all;
% -----采集与读取图像
[fn,pn,fi] = uigetfile('*.jpg','请选择所要识别的图片');          %1.读取图像
%fn表示图片的名字,pn表示图片的路径,fi表示选择的文件类型
bw = imread([pn fn]); % 读取图像 参数为图像名称和图像路径
subplot(121), imshow(bw);  %显示图像函数                     %2.显示原始图像
title('原始图像'); %显示原始图像 
%---------------------
qingxiejiao = rando_get(bw)                          %3.调用函数,获取倾斜角
bw1 = imrotate(bw,qingxiejiao,'bilinear','crop');        %4.图像进行位置矫正
%取值为负值向右旋转 并选区双线性插值 并输出同样尺寸的图像
subplot(122), imshow(bw1); % 显示修正后的图像
title('倾斜校正');

%%
function qingxiejiao=rando_get(I)
I1 = rgb2gray(I);                           %1.转换为灰度图像                
I2 = wiener2(I1, [5, 5]);                   %2.二维维纳滤波函数去除离散噪声点
I3 = edge(I2, 'canny');                     %3.利用边缘检测,减少干扰
%figure,imshow(I3);%可用来显示图像边界
theta = 1:180;                              %4.theta就是要投影方向的角度
[R,xp] = radon(I3,theta);          %5.沿某个方向theta做radon变换,结果是向量
%所得R(p,alph)矩阵的每一个点为对I3基于(p,alph)的线积分,其每一个投影的方向对应一个列向量
[r,c] = find(R>=max(max(R)));  %检索矩阵R中最大值所在位置,提取行列标 
% max(R)找出每个角度对应的最大投影角度 然在对其取最大值,即为最大的倾斜角即90度
J=c;  %由于R的列标就是对应的投影角度
qingxiejiao=90-c; %计算倾斜角
end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
实现图片: 

参考链接:
[https://blog.youkuaiyun.com/fengyhack/article/details/41873119]
[https://blog.youkuaiyun.com/qq_15971883/article/details/80537133]
--------------------- 
作者:小马_blgt 
来源:优快云 
原文:https://blog.youkuaiyun.com/weixin_43958974/article/details/84845707 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值