Figure 1 Sample image used
Figure 2 Cropped image
Figure 3 Reconstructed from the cropped image histogram
Figure 4 RG Histogram
Figure 5 Reconstructed from back projection
Rating: I'll give myself 9.8 points. I used jeric's code,but the algorithm is the same if i use my code. I find it better to use his code.
Code:
ROI=imread('C:\Documents and Settings\gpedemonte\Desktop\ap187-2\activity 3\sample1.jpg');
I=ROI(:,:,1)+ROI(:,:,2)+ROI(:,:,3);
I(find(I==0))=100;
ROI(:,:,1)=ROI(:,:,1)./I;
ROI(:,:,2)=ROI(:,:,2)./I;
ROI(:,:,3)=ROI(:,:,3)./I;
ROI_sub=imread('C:\Documents and Settings\gpedemonte\Desktop\ap187-2\activity 3\sample2.jpg');
I=ROI_sub(:,:,1)+ROI_sub(:,:,2)+ROI_sub(:,:,3);
ROI_sub(:,:,1)=ROI_sub(:,:,1)./I;
ROI_sub(:,:,2)=ROI_sub(:,:,2)./I;
ROI_sub(:,:,3)=ROI_sub(:,:,3)./I;
//probability estimatation
mu_r=mean(ROI_sub(:,:,1)); st_r=stdev(ROI_sub(:,:,1));
mu_g=mean(ROI_sub(:,:,2)); st_g=stdev(ROI_sub(:,:,2));
Pr=1.0*exp(-((ROI(:,:,1)-mu_r).^2)/(2*st_r^2))/(st_r*sqrt(2*%pi));
Pg=1.0*exp(-((ROI(:,:,2)-mu_g).^2)/(2*st_g^2))/(st_r*sqrt(2*%pi));
P=Pr.*Pg;
P=P/max(P);
scf(1);
x=[-1:0.01:1];
Pr=1.0*exp(-((x-mu_r).^2)/(2*st_r))/(st_r*sqrt(2*%pi));
Pg=1.0*exp(-((x-mu_g).^2)/(2*st_g))/(st_g*sqrt(2*%pi));
plot(x,Pr, 'r-', x, Pg, 'g-');
scf(2);
roi=im2gray(ROI);
subplot(211);
imshow(roi, []);
subplot(212);
imshow(P,[]);
//<————-histogram backprohection————————————>
//histogram
r=linspace(0,1, 32);
g=linspace(0,1, 32);
prob=zeros(32, 32);
[x,y]=size(ROI_sub);
for i=1:x
for j=1:y
xr=find(r<=ROI_sub(i,j,1));
xg=find(g<=ROI_sub(i,j,2));
prob(xr(length(xr)), xg(length(xg)))=prob(xr(length(xr)), xg(length(xg)))+1;
end
end
prob=prob/sum(prob);
imshow(prob,[]); xset('colormap', hotcolormap(256));
scf(3)
surf(prob);
//backprojection
[x,y]=size(ROI);
rec=zeros(x,y);
for i=1:x
for j=1:y
xr=find(r<=ROI(i,j,1));
xg=find(g<=ROI(i,j,2));
rec(i,j)=prob(xr(length(xr)), xg(length(xg)));
end
end
scf(4);
imshow(rec, []);
No comments:
Post a Comment