Radon 变换: 又称为Hough Transform (数字图像处理课程里学过——数字图像处理课件 3-P37) 考虑 b=ax+y,将原来的 XY 平面内的点映射到 AB 平面上。则原来在 XY 平面上的一条直线的所有的点,在 AB 平面上都位于同一个点。通过记录下 AB 平面上的点的积累厚度,可反知 XY 面上的一条线的存在。在新平面下得到相应的点积累的峰值,可得出原平面的显著的线集。 例如:XY 平面上的一个直线 y=2x-3; 变换 -3=-2x+y; 其中:a=-2,b=-3 若有两个点在 XY 平面:(0,-3),(2,1),此两点都过直线,则可知有 AB 平面上,此两点在(-2,-3)AB 平面上。 一种更好的表示方法是用 和 来代替 ab。即:xcos+ysin= 基础补充: 直角坐标系:xcosa+ycosa=0 (a 为一个常角,特如45 度,则明显是y= -x 的直线) 下面通过极坐标转换来更进一步说明其普遍性: 因为直角坐标与极坐标变换公式为x=ρcosθ,y=ρsinθ,其中ρ 是极半径,θ 是极角。代入所给的直线方程得ρcosθcosa+ρsinθsina=0,即ρcos(θ-a)=0,而ρ≠0,所以有cos(θ-a)=0,θ-a=π/2,即此直线方程为θ=a+π/2。 极坐标的参量:是角度和极半径(也等于弦长吗) 设原点O 到直线L 的距离为p 并且L 的垂线OD 的倾斜角为a,则L 的方程为x cosa+y sina=p( a、p 为常数,a 为与X 轴夹角,P 为直线与原点距离) D 点的坐标:x d=pcos a y d=psin a 直线L 上任一点A 的坐标设为:(x ,y ), 根据两点式直线方程,可得出:(x -x d)/(y d-y )=tan a, 即:(x -pcos a)/(psin a-y ) = sin a / cos a, 最后导出: x cos a+y sin a =p 以图像的中心为极坐标原点,直线X`即为新的投影坐标, 为角度。我们所要求的原坐标上的一条直线,是一条垂直于上图X`的一条直线,而非 X`本身。 如下例: function radontest I=zeros(200,200); %I(100:170,100:170)=1; A=eye(100,100); I(101:200,1:100)=A; figure, imshow(I);title('orginal image'); orginal image theta=0:180; [R,xp]=radon(I,theta); % R是点的数量多少 % xp是R对应的坐标位置,即为X`,另一解释为直线跟原点间距离 % 0-180代表0到180度 % 此变换是以图像的中心点为原点的变换 figure,imagesc(theta,xp,R); title('R_theta X'); xlabel('theta(degree)'); ylabel('X\prime'); colormap(hot); col...