This is what i have tried.But with very less accurate.
clear all
close all
clc
tic
I=imread('panorama_image1.jpg');
originalmap=I;
w=5;
m=floor(size(I,1)/w);
n=floor(size(I,2)/w);
c=ceil(w/2)+(0:n-1)*w;
r=ceil(w/2)+(0:m-1)*w;
step=floor(w/2);
for y_unit=1:m
for x_unit=1:n v1=0;v2=0;v3=0;v4=0; for i=-step:step-1 v1=v1+(I(r(y_unit),c(x_unit)+i)-I(r(y_unit),c(x_unit)+i+1))^2; v2=v2+(I(r(y_unit)+i,c(x_unit)+i)-I(r(y_unit)+i+1,c(x_unit)+i+1))^2; v3=v3+(I(r(y_unit)+i,c(x_unit))-I(r(y_unit)+i+1,c(x_unit)))^2; v4=v4+(I(r(y_unit)-i,c(x_unit)+i)-I(r(y_unit)-i-1,c(x_unit)+i+1))^2; end IV_cr(y_unit,x_unit)=min([v1,v2,v3,v4]); end end
exper_thr=20;
IV_cr(IV_cr<exper_thr)=NaN;
wf=9;
mf=floor(m/wf);
nf=floor(n/wf);
xc=[];
yc=[]; for y_unit=1:mf
for x_unit=1:nf [C,I]=max(IV_cr((y_unit-1)*wf+1:y_unit*wf,(x_unit-1)*wf+1:x_unit*wf)) [C1,I1]=max(C); IV_crch(y_unit,x_unit)=C1; row=I(I1); col=I1; crch_row(y_unit,x_unit)=(y_unit-1)*wf+row; crch_col(y_unit,x_unit)=(x_unit-1)*wf+col; yc=[yc,r((y_unit-1)*wf+row)];xc=[xc,c((x_unit-1)*wf+col)]; IV_cr((y_unit-1)*wf+1:y_unit*wf,(x_unit-1)*wf+1:x_unit*wf)=NaN; IV_cr((y_unit-1)*wf+row,(x_unit-1)*wf+col)=C1; end end figure(1) imshow(originalmap)
figure(2)
plot(xc,yc,'*')
view(0,-90)
toc;
t=toc;
disp(['amount of time',num2str(t),'sec'])
figure(3)
imshow(originalmap)
hold on
plot(xc,yc,'R*')
axis on
end
Best Answer