MATLAB基于Randon变换的图像倾斜校正算法及实现
2018-12-05 23:53
856 查看
版权声明:支持原创,转载请申明 https://blog.csdn.net/weixin_43958974/article/details/84845707
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
实现图片:
参考链接:
[https://blog.csdn.net/fengyhack/article/details/41873119]
[https://blog.csdn.net/qq_15971883/article/details/80537133]
相关文章推荐
- 图像去模糊算法在CUDA上的实现,基于MATLAB平台
- 基于几何成像模型的鱼眼镜头图像校正算法和技术研究的实现与改进
- 基于Retinex的图像去雾算法(MATLAB实现)
- 基于HSV色彩空间变换的阴影检测算法——MATLAB实现
- 基于经典分割算法的图像内细胞识别与计数(matlab实现)(不定期更新完善)
- 【算法+OpenCV】图像极坐标变换及基于OpenCV的实现
- 《基于几何成像模型的鱼眼镜头图像校正算法和技术研究》实现
- 基于Retinex的图像去雾算法(MATLAB实现)
- 【算法+OpenCV】图像极坐标变换及基于OpenCV的实现
- 数字图像处理基本算法实现(1)--section3.2基本灰度变换
- MATLAB GUI实现常见图像处理算法与视频跟踪算法
- 基于Matlab的Arnold图像置乱算法
- 基于PCNN的图像分割的matlab实现 推荐
- (实验一) --- 彩色图像变换成灰度图像---matlab实现
- 第六章 - 图像变换 - 未实现算法
- 高效的六面体变换算法实现(二) —— 基于GPU的转换方式A
- 数字图像去噪典型算法及matlab实现
- SSE图像算法优化系列十一:使用FFT变换实现图像卷积。
- 鱼眼图像校正算法(基于几何模型)(2D)
- matlab 实现车牌的倾斜校正