快速径向对称 只检测暗对称 代码(2)
生活随笔
收集整理的這篇文章主要介紹了
快速径向对称 只检测暗对称 代码(2)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
<span style="font-size:18px;">%RST 徑向?qū)ΨQ變換
% function [FilterImage,Image_out] = RST(I);I = imread('lena.jpg');
% I=zeros(80,80) ;
% for x=1:1:80
% for y=1:1:80
% I(y,x) =255;
% end;
% end;
%
% r2 =8*8 ;
% for x=1:1:80
% for y=1:1:80
% tmp1 =(x-40)*(x-40)+(y-40)*(y-40) ;
% if(tmp1 <= r2)
% I(y,x) = 0 ;
% end;
% end;
% end;%%
% 計(jì)算圖像梯度
[h w dim] = size(I);
if(dim == 3)I = rgb2gray(I);
end;%如果均值小于100就開始做log變換
mean_v = mean(I(:));
if(mean_v <60)
I_log =log(double(1+I));
Min =min(I_log(:));
Max =max(I_log(:));
I_log = (I_log-Min)*255/(Max-Min);
%I = I_log ;
end;[FX,FY] = gradient(double(I)) ;
% FX = textread('D:\RST\XG.txt');
% [t1 t2]= size(FX);
% FX =FX(:,1:t2-1);
% FY = textread('D:\RST\YG.txt');
% [t1 t2]= size(FY);
% FY =FY(:,1:t2-1);
%計(jì)算梯度方向圖和幅度圖
% theta = atan2( FY,FX);
Mag = sqrt(FY.^2 +FX.^2);%圖像的幅度圖O_map_pos=zeros(h,w) ;%方向投影圖 正反向 就是梯度方向
O_map_neg=zeros(h,w) ;
M_map_pos=zeros(h,w) ; %圖像的幅度圖
M_map_neg=zeros(h,w) ;M_map_Total =zeros(h,w) ;S_map=zeros(h,w) ;%輸出高斯模板Moban = fspecial('gaussian',[9 9],2); %高斯模板對(duì)圖像進(jìn)行處理for r =3:1:6%計(jì)算RST 正反方向的 方向投影和幅度圖O_map_pos=zeros(h,w) ;M_map_pos=zeros(h,w) ;O_map_neg=zeros(h,w) ;M_map_neg=zeros(h,w) ;a =2 ;%對(duì)圖像進(jìn)行處理for y=(r+1):1:(h-r-1)for x=(r+1):1:(w-r-1)if(Mag(y,x) == 0) continue; end;%就是原文中的正向影響像素點(diǎn)坐標(biāo)偏差值tmp_y = FY(y,x)*r/Mag(y,x) ;%在x和y方向上的r*單位增量 (g(p)/||g(p)||)*ntmp_x = FX(y,x)*r/Mag(y,x) ;% if( ((tmp_y>=0) &&(tmp_x>=0) )||((tmp_y<0) &&(tmp_x<0) )) end;y_to =floor(y - tmp_y +0.5) ;%在當(dāng)前像素點(diǎn)的x和y方向上的增量x_to =floor(x - tmp_x +0.5) ;
% if(I(y,x) >200) continue; end;
% if( ((tmp_y>=0) &&(tmp_x>=0) )||((tmp_y<0) &&(tmp_x<0) ))
% O_map_pos(y_to,x_to) = O_map_pos(y_to,x_to)+1 ;
% M_map_pos(y_to,x_to) = M_map_pos(y_to,x_to) +Mag(y,x);
% elseO_map_neg(y_to,x_to) = O_map_neg(y_to,x_to)+1 ;M_map_neg(y_to,x_to) = M_map_neg(y_to,x_to) +Mag(y,x);
% end;end; %xend; %y
endK_1 =max(abs(O_map_neg(:))) ;K_2 =max(abs(M_map_neg(:))) ; K_1=1 ;K_2=1 ;S_map = (((O_map_neg/K_1).^2 ).* M_map_neg/K_2) ;M_map_Total = M_map_Total + S_map ;% end; %rS_map_Filter = conv2( M_map_Total,Moban ,'same');
Image_out =M_map_Total ;
FilterImage =S_map_Filter ;
imshow(FilterImage ,[]);
imshow(Image_out,[]) </span>
總結(jié)
以上是生活随笔為你收集整理的快速径向对称 只检测暗对称 代码(2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Fast Radial Symmetry
- 下一篇: opencv求解AX=0