24小时热门版块排行榜    

查看: 1133  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

cjy0803

新虫 (初入文坛)

[求助] 求解kmeans图像分割程序中的一些问题 已有2人参与

1 计算灰度直方图之前为什么要去除图像灰度值中的0值?
2 计算灰度直方图那一块代码没理解 h与hc这两个矩阵是什么作用
3 程序中的cc应该是一个值,为什么要写成cc(1)这种形式?
下面是部分代码
谢谢解答
CODE:
clc;
clear;

k=4;%定义聚类个数

% 读入图像
A=imread('C:\Documents and Settings\Administrator\桌面\wonder\2.jpg','jpg');
% 转为灰度图像
B=rgb2gray(A);
% 保存至22.jpg
imwrite(B,'C:\Documents and Settings\Administrator\桌面\wonder\22.jpg','jpg');

ima=double(B);    % 转为double类型
copy=ima;         % 保留副本
ima=ima(:);       % 向量化

mi=min(ima);      % 最小值为0
ima=ima-mi+1;     % 转换灰度范围 原[0,255] 现[1,256] 去除0值

s=length(ima);    % s=m*n



% 计算图像灰度直方图
m=max(ima)+1;    % m=257

h=zeros(1,m);    % h 1*257
hc=zeros(1,m);   % hc 1*257

for i=1:s        % 遍历向量
  if ima(i)>0
      h(ima(i))=h(ima(i))+1;
  end   
end
ind=find(h);     % 返回h中非零元素所在位置
hl=length(ind);  % 计算h中非零元素个数 hl=256

% 初始化质心
mu=(1:k)*m/(k+1);

% 开始
while(true)
  
  oldmu=mu;
  % 当前的分类
  for i=1:hl
      c=abs(ind(i)-mu);  % 计算每个值到中心的距离
      cc=find(c==min(c));% 找出距离最小的点
      hc(ind(i))=cc(1);     
  end
  
  %重新计算均值
  for i=1:k,
      a=find(hc==i);
      mu(i)=sum(a.*h(a))/sum(h(a));
  end
  
  if mu==oldmu
      break;
  end;
  
end

回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cjy0803

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by gorgan at 2014-06-09 14:07:45
1 计算灰度直方图之前为什么要去除图像灰度值中的0值?
答:本来灰度范围是0到255,但是要转化为1到256,才能建立一个长度为256的数组
因为matlab里数组不能是从0开始的,比如m是一个数组,m是非法的,m的第一个元 ...

谢谢
4楼2014-06-17 09:06:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

gorgan

木虫之王 (文学泰斗)

无意苦争春

【答案】应助回帖

感谢参与,应助指数 +1
1 计算灰度直方图之前为什么要去除图像灰度值中的0值?
答:本来灰度范围是0到255,但是要转化为1到256,才能建立一个长度为256的数组
因为matlab里数组不能是从0开始的,比如m是一个数组,m[0]是非法的,m的第一个元素是m[1]
3 程序中的cc应该是一个值,为什么要写成cc(1)这种形式?
答:等于最小值的可能不是一个元素,比如最小值为1,等于1的可能有好几个,cc(1)就是从相等的里面取出一个
无我相,无人相,无众生相,无寿者相
2楼2014-06-09 14:07:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

仙木映月

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
cjy0803: 金币+7, ★★★很有帮助 2014-06-17 09:06:02
问题1:
这步的主要目的并不是为了要去掉灰度为0的值,而是要确定图像中灰度值的范围。比如一个图像的灰度只有:12,13,14,15.则得到的s=4,ima为:1,2,3,4. 这省去了不必要的循环运算。
问题2:
h是为了统计处于灰度值区间ima内的各个灰度值上像素点的个数,用这个做均一化就可以求出灰度的直方图了。
hc是为了给离Kmeans的k个中心最近的点做标记,这样就可以利用这样的分类迭代更新中心值mu了。
问题3:
楼上说可能不止一个是从范围的角度讲的。其实这里的小循环的目的就是要找到当前点距离哪个分累中心最近,并用这个分类重心的标号为这个点做标记。cc中的第一个元素就是那个距离某中心最近的该中心的标号,所以用来更新hc。
Hardtosay.
3楼2014-06-10 09:14:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 今天系统多次维护,明天很可能放榜! +8 zju2000 2026-08-16 9/450 2026-08-17 12:20 by lmz0216
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +11 Ldrop2023 2026-08-13 11/550 2026-08-17 12:07 by zbs701124
[考研] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 6GojgJvkDudM 2026-08-16 4/200 2026-08-17 11:46 by 4GBAYCdVQoK3
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 6GojgJvkDudM 2026-08-16 3/150 2026-08-17 09:49 by xLVPIRuSvCUe
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +32 医学老男孩 2026-08-13 74/3700 2026-08-16 21:05 by 医学老男孩
[论文投稿] 岩土工程学报什么时候才能终审完呐 25+3 yeager111 2026-08-10 4/200 2026-08-16 20:42 by tfang
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +3 Tide man 2026-08-14 3/150 2026-08-16 17:47 by jurkat.1640
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 26/1300 2026-08-16 12:35 by 启萌科技
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +10 majunge000 2026-08-11 12/600 2026-08-16 08:18 by xli1984
[基金申请] filecode=后面第一个是大写字母 +6 wangze12014 2026-08-14 7/350 2026-08-15 20:12 by gltch
[基金申请] 关于Filecode分析方法 +10 majunge000 2026-08-10 13/650 2026-08-15 12:26 by hanpeng972
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
信息提示
请填处理意见