Need Help Regarding Logmap
1 次查看(过去 30 天)
显示 更早的评论
Hi,
I'm trying to implement Logmap (Log-Polar Mapping)of Images..Here i don't want to use Matlab functions (built-in) have to do this simply using loops .As i have to move the algo to FPGA next.
I have Implemented using very less (almost no Matlab function except pol2cart), But the results are not smooth enough , can any one explain me hoe to improve or solve the checker board type problem even after using averaging in neighbours
Im putting the code here its a lil dirty still, also comments are removed
clc
clear
close all
a = imread('cameraman.tif');
[r c]=size(a);
ps=1; % Padding size
aa=zeros(r+10,c+10);
aa(ps+1:r+ps,ps+1:c+ps)=a;
% Claculating the center
xc = 0.5 + size(a,2)/2;
yc = 0.5 + size(a,1)/2;
% Number of Rings
nr = min(size(a,2),size(a,1));
rmin = 0.1; %Innermosr ring radai
rmax = min(xc,yc); %OuterMost ring radai
nw = (-2*pi*(nr-1)) / log(rmin/rmax); % Number of wedges with out center
rmin = 0.1;
rmax = min([xc-0.5,yc-0.5]);
deltaTheta = (2*pi) / nw;
step_r=(log(rmax)-log(rmin))/(nr-1); % Step for equal spaced items
step_t=((2*pi)-deltaTheta)/(nw-1);
lp_img=[];
lp_img_2=[];
x_d=[];
y_d=[];
x=1;
y=1;
pix=[];
for logRho=log(rmin):step_r:log(rmax)
rho = exp(logRho);
for theta=0:step_t:((2*pi)-deltaTheta)
[Y,X] = pol2cart(theta,rho);
X = (X+xc+ps);
Y = (Y+yc+ps);
X=round(X);
Y=round(Y);
% x_d(x,y)=X;
% y_d(x,y)=Y;
pix=aa(abs(X-ps):X+ps,(abs(Y-ps):Y+ps));
[rr cc]=size(pix);
av=sum(sum(pix))/(rr*cc);
lp_img(y,x)= av;
y=y+1;
end
y=1;
x=x+1;
end
figure, imagesc(lp_img); colormap gray
0 个评论
回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!