|
楼主 |
发表于 2006-11-1 08:56
|
显示全部楼层
下面的是8*8*8的hsv的彩色直方图matlab编码
im=imread('F:\code\optical flow\stereoflow\car0.png');
r=size(im,1); c=size(im,2); d=size(im,3); x=8; y=8; z=8;
im=rgb2hsv(im); xyz_s(1)=1/x; xyz_s(2)=1/y; xyz_s(3)=1/z;
im=reshape(im,r*c*d,1);
for i=1:3
im(r*c*(i-1)+1:r*c*i,1)=fix(im(r*c*(i-1)+1:r*c*i,1)/xyz_s(i));
end
for j=1:r*c*d
if im(j,1)==8, im(j,1)=7; end
end
hsv=zeros(512);
for i=0:x-1, for j=0:y-1, for k=0:z-1
h=im(1:r*c,1)==i; s=im(r*c+1:r*c*2,1)==j;
v=im(r*c*2+1:r*c*3,1)==k;
hsv(i*64+j*8+k+1)=size(find(h&s&v),1);
end; end; end
上面的程序运行需要12-13秒
希望高手指点如何优化程序
以减少运行的时间
谢谢
[ 本帖最后由 ChaChing 于 2010-6-29 00:25 编辑 ] |
|