matlab练习程序(radon变换)

radon变换就是图像在不同方向上的投影。

下图f(x,y)可以代表图像,R(x')就是图像向右下方的投影。

matlab练习程序(radon变换)_第1张图片

数学上是按投影方向进行线积分,在图像领域就是按照投影方向累加像素就行了。

matlab中有radon函数,为了熟悉原理我又写了一个。

通过旋转图像映射,效率不怎么样。

canny后Lena:

matlab练习程序(radon变换)_第2张图片

45度投影:

matlab练习程序(radon变换)_第3张图片

代码如下:

main.m

clear all; close all; clc;

img=imread('lena.jpg');
ed=edge(img,'canny');

r=Radon(ed,45);     %检测直线什么的,可以投影到0-179度上
%r=radon(ed,45);   %系统自带

figure;
plot(r)

Radon.m

function re=Radon(img,rotate)

    img=imrotate(img,rotate);   %没什么效率,实际中旋转投影方向比较好

    re=sum(img);  %已旋转后的图像按列求和

end

 

 

转载于:https://www.cnblogs.com/tiandsp/archive/2013/05/24/3096363.html

你可能感兴趣的:(matlab练习程序(radon变换))