% %I1hsv=rgb2hsv(I1);
% %I1hsv(:,:,1) %量化成16级
% %u=1:16*16*4
% clear,clf
% I1=imread('render020.jpg');I2=imread('ceshi.jpg');
% imshow(I1);figure(4),imshow(I2);
% I1=double(I1);%若不先转为double,除32无法准确转换到8个区间内
% I18=floor(I1./32);%convert to 8 zones;
% I2=double(I2);I28=floor(I2./32);
% figure(1),hold on
% rect=getrect;
% rect=floor(rect);
% x1=rect(1);
% x2=x1+rect(3);
% y1=rect(2);
% y2=y1+rect(4);
% yc=[floor(rect(4)/2) floor(rect(3)/2)];%目标区域中心
% xprimes=[x1 x2 x2 x1 x1];
% yprimes=[y1 y1 y2 y2 y1];
% hold on
% plot(xprimes,yprimes,'r','linewidth',2);
% %plot(x1+yc(1),y1+yc(2),'g*');%目标区域中心
% hold off
% figure(4);
% hold on
% plot(xprimes,yprimes,'r','linewidth',2);
% %plot(x1+yc(1),y1+yc(2),'g*');%目标区域中心
% hold off
%
% tmp=I18(y1:y2,x1:x2,:);tmp2=I28(y1:y2,x1:x2,:);
% [nr,nc,nb]=size(tmp);
%
% for i=0:511
% u(i+1,1)=mod(floor(i/64),8);
% u(i+1,2)=mod(floor(i/8),8);
% u(i+1,3)=mod(i,8);
% end
%
% % q=zeros(1,512);
% % for i=1:512
% % for r=1:nr
% % for c=1:nc
% % q(i)=q(i)+(tmp(r,c,1)==u(i,1) & tmp(r,c,2)==u(i,2) & tmp(r,c,3)==u(i,3));
% % end
% % end
% % end
%
% h1=sqrt((rect(4)/2)^2+(rect(3)/2)^2);%h为跟踪窗宽(包括长度ch和宽度cl)
% %h=[rect(4)/2,rect(3)/2];
%
% sumkt=0;
% for r=1:(nr-1)
% for c=1:(nc-1)
% x((r-1)*nc+c,1)=r;
% x((r-1)*nc+c,2)=c;
% t=((x((r-1)*nc+c,1)-yc(1))/h1)^2+((x((r-1)*nc+c,2)-yc(2))/h1)^2;
% %t=sum(((x((r-1)*nc+c,:)-yc)/h)^2);%%%%行和列对应的么?????
% if t<=1
% kt=1-t^2;
% else
% kt=0;
% end
% sumkt=sumkt+kt;
% end
% end
% C=1/sumkt;
%
% for i=1:512
% sumkt=0;sumkt2=0;
% for r=1:(nr-1)
% for c=1:(nc-1)
% x((r-1)*nc+c,1)=r;
% x((r-1)*nc+c,2)=c;
% t=((x((r-1)*nc+c,1)-yc(1))/h1)^2+((x((r-1)*nc+c,2)-yc(2))/h1)^2;
% %t=sum(((x((r-1)*nc+c)-yc)/h)^2);
% if t<=1
% kt=1-t^2;
% else
% kt=0;
% end
% sumkt=sumkt+kt*(tmp(r,c,1)==u(i,1) & tmp(r,c,2)==u(i,2) & tmp(r,c,3)==u(i,3));
% sumkt2=sumkt2+kt*(tmp2(r,c,1)==u(i,1) & tmp2(r,c,2)==u(i,2) & tmp2(r,c,3)==u(i,3));
% end
% end
% q(i)=C*sumkt;
% q2(i)=C*sumkt2;
% end
% figure(2);
% %subplot(1,2,1),plot(1:512,q,'r','linewidth',2);
% %subplot(1,2,2),
% subplot(1,2,1),bar(q);
% subplot(1,2,2),bar(q2);
%
% rou=sum(sqrt(q.*q2));%计算巴氏距离
% d=sqrt(1-rou)
%%%3维柱状图显示图片区域颜色分布情况
I=imread('render020.jpg');
[tmp1 rect]=imcrop(I);
[nr1,nc1,nb1]=size(tmp1);
tmp1=double(tmp1);
tmp1=floor(tmp1/32);
x1=rect(1);x2=x1+rect(3);y1=rect(2);y2=y1+rect(4);
xprimes=[x1,x2,x2,x1,x1];yprimes=[y1,y1,y2,y2,y1];
hold on
plot(xprimes,yprimes,'r','linewidth',2);
for i=0:511
u(i+1,1)=mod(floor(i/64),8);
u(i+1,2)=mod(floor(i/8),8);
u(i+1,3)=mod(i,8);
end
yc=[floor(rect(4)/2) floor(rect(3)/2)];%目标区域中心
h1=sqrt((rect(4)/2)^2+(rect(3)/2)^2);%h为跟踪窗宽(包括长度ch和宽度cl)
for r=1:nr1
for c=1:nc1
x((r-1)*nc1+c,1)=r;
x((r-1)*nc1+c,2)=c;
t=((x((r-1)*nc1+c,1)-yc(1))/h1)^2+((x((r-1)*nc1+c,2)-yc(2))/h1)^2;
%t=sum(((x((r-1)*nc+c,:)-yc)/h)^2);%%%%行和列对应的么?????
if t<=1
kt(r,c)=1-t^2;
else
kt(r,c)=0;
end
end
end
for i=1:512
for r=1:nr1
for c=1:nc1
if (tmp1(r,c,1)==u(i,1)&tmp1(r,c,2)==u(i,2)&tmp1(r,c,3)==u(i,3))
f(r,c)=i*kt(r,c);
end
end
end
end
figure(2);
bar3(f)
% clear,clf
% I1=imread('render020.jpg');I2=imread('ceshi.jpg');
% imshow(I1);figure(4),imshow(I2);
% I1=double(I1);%若不先转为double,除32无法准确转换到8个区间内
% I18=floor(I1./32);%convert to 8 zones;
% I2=double(I2);I28=floor(I2./32);
% figure(1),hold on
% rect=getrect;
% rect=floor(rect);
% x1=rect(1);
% x2=x1+rect(3);
% y1=rect(2);
% y2=y1+rect(4);
% yc=[floor(rect(4)/2) floor(rect(3)/2)];%目标区域中心
% xprimes=[x1 x2 x2 x1 x1];
% yprimes=[y1 y1 y2 y2 y1];
% hold on
% plot(xprimes,yprimes,'r','linewidth',2);
% hold off
% figure(4);
% hold on
% plot(xprimes,yprimes,'r','linewidth',2);
% hold off
%
% tmp=I18(y1:y2,x1:x2,:);tmp2=I28(y1:y2,x1:x2,:);
% [nr,nc,nb]=size(tmp);
%
% h1=sqrt((rect(4)/2)^2+(rect(3)/2)^2);%h为跟踪窗宽(包括长度ch和宽度cl)
%
% sumkt=0;
% for r=1:(nr-1)
% for c=1:(nc-1)
% x((r-1)*nc+c,1)=r;
% x((r-1)*nc+c,2)=c;
% t=((x((r-1)*nc+c,1)-yc(1))/h1)^2+((x((r-1)*nc+c,2)-yc(2))/h1)^2;
% if t<=1
% kt=1-t^2;
% else
% kt=0;
% end
% sumkt=sumkt+kt;
% end
% end
% C=1/sumkt;
%
% for i=1:8
% sumktr=0;sumkt2r=0;sumktg=0;sumkt2g=0;sumktb=0;sumkt2b=0;
% for r=1:(nr-1)
% for c=1:(nc-1)
% x((r-1)*nc+c,1)=r;
% x((r-1)*nc+c,2)=c;
% t=((x((r-1)*nc+c,1)-yc(1))/h1)^2+((x((r-1)*nc+c,2)-yc(2))/h1)^2;
% if t<=1
% kt=1-t^2;
% else
% kt=0;
% end
% sumktr=sumktr+kt*(tmp(r,c,1)==i);
% sumktg=sumktg+kt*(tmp(r,c,2)==i);
% sumktb=sumktb+kt*(tmp(r,c,3)==i);
% sumkt2r=sumkt2r+kt*(tmp2(r,c,1)==i);
% sumkt2g=sumkt2g+kt*(tmp2(r,c,2)==i);
% sumkt2b=sumkt2b+kt*(tmp2(r,c,3)==i);
% end
% end
% qr(i)=C*sumktr;
% qg(i)=C*sumktg;
% qb(i)=C*sumktb;
% q2r(i)=C*sumkt2r;
% q2g(i)=C*sumkt2g;
% q2b(i)=C*sumkt2b;
% end
% figure(2);
% subplot(2,3,1),bar(qr);subplot(2,3,2),bar(qg);subplot(2,3,3),bar(qb);
% subplot(2,3,4),bar(q2r);subplot(2,3,5),bar(q2g);subplot(2,3,6),bar(q2b);
%
% rour=sum(sqrt(qr.*q2r));%计算巴氏距离
% roug=sum(sqrt(qg.*q2g));
% roub=sum(sqrt(qb.*q2b));
% dr=sqrt(1-rour)
% dg=sqrt(1-roug)
% db=sqrt(1-roub)
%核密度估计求解的例子:
% xdata = normrnd(10,1,5000,1);
% [fk,xk,h] = ksdensity(xdata);
% [f,xi] = ecdf(xdata);
% ecdfhist(f,xi,range(xdata)/h);
% hold on
% plot(xk,fk,'r','linewidth',2);
% fun = @(x,xdata)-ksdensity(xdata,x);
% xfz = fminsearch(fun,mean(xdata),[],xdata);
% plot(xfz,ksdensity(xdata,xfz),'g*','markersize',15);