MATLAB基于Randon变换的图像倾斜校正算法及实现
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.csdn.net/fengyhack/article/details/41873119]
[https://blog.csdn.net/qq_15971883/article/details/80537133]
---------------------
作者:小马_blgt
来源:CSDN
原文:https://blog.csdn.net/weixin_43958974/article/details/84845707
版权声明:本文为博主原创文章,转载请附上博文链接!
MATLAB基于Randon变换的图像倾斜校正算法及实现相关推荐
- DCT变换编码matlab,基于DCT变换的图像压缩编码的MATLAB实现
基于DCT变换的图像压缩编码的MATLAB实现 今天是一个信息化.网络化的时代,通过Internet可以获取全面的文字.图像.声音等信息,但是,图像信息需要占据大量的存储空间,给原始数 (本文共4页) ...
- 基于主轴变换的医学图像倾斜校正
问题描述 在MRI扫描的时候,可能会由于病人体位的关系,出现扫描图像是倾斜的状况,如下图所示. 在特定的情况下,病人的倾斜状态会影响到后面我们数据的处理.比如在MRI头部自动定位通常是通过AC-PC连 ...
- matlab基于傅立叶变换的时域或频域算法计算多普勒频移,展示代码
可以使用MATLAB的Fourier变换函数fft()来计算多普勒频移.示例代码:%% 计算多普勒频移% 加载信号 x = load('signal.mat');% 计算傅立叶变换 X = fft(x ...
- matlab 倾斜矫正,matlab图像倾斜校正
4 图像颜色畸变校正介绍图像颜色畸变现象可以是由摄像器材导致,也可以是由于真实环境本身就偏 色导致,还有的是由于图像放置过久氧化.老化导致.无论其产生的原因如何, 其校正方法都是类似的.如果用 Mat ...
- Matlab实现基于二维伽马函数的光照不均匀图像自适应校正算法
Matlab程序: %% % 基于二维伽马函数的光照不均匀图像自适应校正算法 % %% clc,close all; tic; im=imread('你的图片.jpg'); figure; imsho ...
- 基于MATLAB的数字图像K-L变换,基于DCT变换的图像编码方法研究
分类号 密级 UDC注l 学 位 论 文 基于DCT变换的图像编码方法研究 (题名和副题名) 朱剑英 (作者姓名 指导教师姓名 副教授 中诱学位级别硕士 沦_义提交日期2004.1 专.业名称 通信与 ...
- python图像倾斜校正_图像倾斜矫正
没有找到关于图像倾斜矫正的综述性文献,那就自己整理一下吧. 图像倾斜可以分为两种情况,一种是平面倾斜,这种情况下拍照设备与试卷平行,拍出来的图像只需要进行旋转即可完成矫正:另一种是Z轴倾斜,这种情况下 ...
- python图像倾斜校正_校正倾斜的文本
有时候文本是倾斜的,则不利于文本识别,如下图所示,那么进行文本识别之前我们需要应用文本倾斜校正算法(text skew correction,deskewing text). 对于一幅包含旋转文本块的 ...
- hough变换检测直线 matlab,Matlab实现Hough变换检测图像中的直线
Hough变换的原理: 将图像从图像空间变换至参数空间,变换公式如下: 变换以后,图像空间与参数空间存在以下关系: 图像空间中的一点在参数空间是一条曲线,而图像空间共线的各点对应于参数空间交于一点的各 ...
最新文章
- 李德毅院士:智能时代的农机驾驶——人工智能一百年
- Python全栈工程师(多继承、函数重写)
- ros(5)service client实现
- 浅谈Session与Cookie的区别与联系
- PHP代码审计11—逻辑漏洞
- VB.NET 教程_04_高级教程
- Codeforces 364D Ghd(随机化)
- ipad、iphone 怎么真机调试
- python 基于PHP在线音乐网站
- 实例化和初始化的区别
- Windows 10的TPM模块到底是不是美国全球监控体系的奠基石?
- 基于Java毕业设计新疆旅游专列订票系统源码+系统+mysql+lw文档+部署软件
- 日系赛璐璐鼻子上色教程,干货满满!
- Word 使用技巧大全
- Wiki 2.0 网站 (Wikia) 今日揭开面纱
- MacOS下载并配置gradle
- 2022最新前端面试题(vue方向)
- 一个人可以有多少个朋友
- 智能合约项目开发实例
- 20210101奥森版玫瑰花