Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-04-10, 16:04   #1
yyh332
初级会员
 
注册日期: 2008-04-10
年龄: 38
帖子: 3
声望力: 0
yyh332 正向着好的方向发展
默认 [求助]如何用matlab画出图像的二维直方图

请高手帮帮忙啊,先谢谢了.
yyh332 当前离线   回复时引用此帖
旧 2008-04-15, 14:56   #2
小应
初级会员
 
注册日期: 2008-04-15
年龄: 41
帖子: 5
声望力: 0
小应 正向着好的方向发展
默认 同问啊!!!

我也是这个问题啊!!!哪位高手帮忙啊!!!!!:lovely: :lovely: :lovely: :lovely:
小应 当前离线   回复时引用此帖
旧 2008-04-15, 19:29   #3
看看想想~
初级会员
 
注册日期: 2008-04-10
年龄: 35
帖子: 4
声望力: 0
看看想想~ 正向着好的方向发展
默认

引用:
作者: yyh332 查看帖子
请高手帮帮忙啊,先谢谢了.
用imhist函数做直方图啊~
看看想想~ 当前离线   回复时引用此帖
旧 2008-04-16, 15:30   #4
小应
初级会员
 
注册日期: 2008-04-15
年龄: 41
帖子: 5
声望力: 0
小应 正向着好的方向发展
默认

I=imread('006.jpg');
f=rgb2gray(I);
imshow(f);
[m,n,d]=size(f)
A=f;
for i=1:1:256
for j=1:1:256
twodim2(i,j)=0;
end
end
for j=1:1:m-1 % 求各个像素点灰度值
for i=1:1:n-1
m1=A(j,i);
m2=A(j+1,i);
m3=A(j+1,i+1);
m4=A(j,i+1);
tem1=max(m1,m2); %求邻域最大灰度值
tem2=max(m3,m4);
m5=max(tem1,tem2);
twodim2(m1,m5)=twodim2(m1,m5)+1;
end
end
i=1:1:256;
j=1:1:256;
mesh(i,j,twodim2(i,j));
rotate3d
title('二维直方图')
box on




上面的程序不知道怎么错了,不同的图象在该直方图上的分割出现的阈值都是同一个真的很诡异啊!!希望哪位高手指教下啊!!!!!!!!!!


:cry: :cry: :cry: :cry:
小应 当前离线   回复时引用此帖
旧 2008-04-17, 08:51   #5
dnping
高级会员
 
注册日期: 2007-07-26
年龄: 40
帖子: 268
声望力: 24
dnping 是一个将要出名的人
默认

楼上请把出错信息给出来……
dnping 当前离线   回复时引用此帖
旧 2008-04-18, 10:57   #6
小应
初级会员
 
注册日期: 2008-04-15
年龄: 41
帖子: 5
声望力: 0
小应 正向着好的方向发展
默认

f=imread('005.jpg');
imshow(f);
[m,n,d]=size(f)
A=f;
for i=1:1:256
for j=1:1:256
twodim2(i,j)=0;
p(i,j)=0; %
end
end
I1=0;
I2=0;
I3=0;
I4=0;
I5=0;
tem1=0;
tem2=0;
for j=1:1:m-1 % 求各个像素点灰度值
for i=1:1:n-1
I1=A(j,i);
I2=A(j+1,i);
I3=A(j+1,i+1);
I4=A(j,i+1);
tem1=max(I1,I2); %求邻域最大灰度值
tem2=max(I3,I4);
I5=max(tem1,tem2);
% I5=(I1+I2+I3+I4)/4;
twodim2(I1,I5)=twodim2(I1,I5)+1;
end
end
imshow(twodim2) %




上面程序imshow(twodim2) 后的直方图是在对角线上的,但是感觉少了一部分。 只有对角线上的一半,对角线下面的没有了,这个好象和理论上的不一致,应该是错了,可是真的不知道错误在哪里啊????


兄弟姐妹们帮帮忙啊!!!
小应 当前离线   回复时引用此帖
旧 2009-04-01, 10:15   #7
silas_xue
高级会员
 
注册日期: 2008-11-01
年龄: 39
帖子: 406
声望力: 26
silas_xue 是一个将要出名的人
默认 回复: [求助]如何用matlab画出图像的二维直方图

回复:4楼和6楼
twodim2(m1,m5)=twodim2(m1,m5)+1;
如果m1,m5为0,代码能通么: - )
4楼看一下是不是出错了 6楼看一下 你代码的鲁棒性不强哦 : - )

6楼
另外 试想一下 邻域gray大于中心点的时候 如何保证直方图是在对角线上?

第三 4楼和6楼2D直方图是基于什么定义的 应当是后来人定义的吧 与最早的Weszka的散射定义不大一样 能否把引文作为附件贴上来 大家一起分享一下 或者名字和第一作者说明一下 谢谢了

Thx for reading.
PS:若还算满意,直接点击“Thanks”,再次登陆时亦便于查看回答是否真的帮到你了。
silas_xue 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[原创]MATLAB图像配准程序 maomao369 MATLAB论坛 105 2019-08-19 17:48
高手帮忙看下这句话的含义 yanmingzhi MATLAB论坛 0 2008-05-23 10:28
自己写的有限差分超松弛迭代程序 abiao00000 MATLAB论坛 0 2008-05-09 13:47
[求助]有没有人用过TiePie公司的数据采集卡HS3 zibing MATLAB论坛 1 2008-05-07 15:36
帮忙看下这个程序为什么回调有问题? 未注册 MATLAB论坛 0 2008-04-28 10:51


所有时间均为北京时间。现在的时间是 19:34


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.