radon變換就是圖像在不同方向上的投影。
下圖f(x,y)可以代表圖像,R(x')就是圖像向右下方的投影。

數學上是按投影方向進行線積分,在圖像領域就是按照投影方向累加像素就行了。
matlab中有radon函數,為了熟悉原理我又寫了一個。
通過旋轉圖像映射,效率不怎么樣。
canny后Lena:

45度投影:

代碼如下:
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
