MATLAB radon變換


radon變換就是圖像在不同方向上的投影。

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

數學上是按投影方向進行線積分,在圖像領域就是按照投影方向累加像素就行了。

matlab中有radon函數,為了熟悉原理我又寫了一個。

通過旋轉圖像映射,效率不怎么樣。

canny后Lena:

45度投影:

代碼如下:

main.m

 1 clear all; close all; clc;  2 
 3 img=imread('lena.jpg');  4 ed=edge(img,'canny');  5 
 6 r=Radon(ed,45);     %檢測直線什么的,可以投影到0-179度上  7 %r=radon(ed,45);   %系統自帶  8 
 9 figure; 10 plot(r)

Radon.m

1 function re=Radon(img,rotate) 2 
3     img=imrotate(img,rotate);   %沒什么效率,實際中旋轉投影方向比較好 4 
5     re=sum(img);  %已旋轉后的圖像按列求和 6 
7 end

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM