声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1907|回复: 4

[图像处理] 有关彩色图象直方图的问题

[复制链接]
发表于 2006-9-26 14:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
经常看到有这样的说法:
求彩色图象的4*4*4直方图, 在这里的4*4*4直方图, 请问应该理解?
如何通过编码实现? 谢谢

我是用matlab 实现的, 不过运行时间有点长, 那位大虾有优化点的程序啊
希望中。。。。。。。。。。。。。

[ 本帖最后由 ChaChing 于 2010-6-29 00:19 编辑 ]
回复
分享到:

使用道具 举报

发表于 2006-10-26 11:19 | 显示全部楼层
这个没办法,都是通过循环实现的,效率必然低

其实直方图本来就是对单通道图像的.
im=imread('file.jpg');
figure,imhist(im(1,:));
figure,imhist(im(1,:));
figure,imhist(im(1,:));

或者转为灰度再显示:
gray=rgb2gray(im);
figure,imhist(gray);

评分

1

查看全部评分

发表于 2006-10-27 20:47 | 显示全部楼层
不是 三色原理 来构成彩色图象的吗?要则呢们来个4*4*4呢?你可以把原程序发上来,让我观摩观摩不
 楼主| 发表于 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 编辑 ]
发表于 2006-11-8 00:33 | 显示全部楼层
我也用matlab处理过光力学图像,感觉确实比较慢,程序得运行一天。期待高手的优化方案!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-12 15:21 , Processed in 0.076750 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表