24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1118  |  回复: 20
当前主题已经存档。

tc1788

铁虫 (小有名气)

引用回帖:
Originally posted by string121 at 2009-11-17 19:26:

放错地方了. 你注意看我开始的.

你程序里有将数据转换成矩阵的语句吗 我没找到诶
11楼2009-11-17 21:38:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)

★ ★ ★
tc1788(金币+3,VIP+0):谢谢您的耐心讲解 我才看明白 谢谢你 可以实现计数功能 但是我有一点还想请教您 如果是周期性边界那计数该怎么统计呢? 11-25 19:09
Sample=reshape(round(1+2*rand(row*col*dep,1)),[row,col,dep]);%产生
%1-3之间的随机整数。
S(x,y,z)=Sample(x,y,z)%生成S.
这两句不就是吗? reshape就是数据格式的转换.
实在不会就用for循环将数据一个个排成S.
12楼2009-11-18 10:00:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tc1788

铁虫 (小有名气)

引用回帖:
Originally posted by string121 at 2009-11-18 10:00:
Sample=reshape(round(1+2*rand(row*col*dep,1)),[row,col,dep]);%产生
%1-3之间的随机整数。
S(x,y,z)=Sample(x,y,z)%生成S.
这两句不就是吗? reshape就是数据格式的转换.
实在不会就用for循环将数据一个个 ...

这是周期性边界的示意图 您看看 不是病毒您放心
13楼2009-11-25 19:43:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tc1788

铁虫 (小有名气)

引用回帖:
Originally posted by string121 at 2009-11-18 10:00:
Sample=reshape(round(1+2*rand(row*col*dep,1)),[row,col,dep]);%产生
%1-3之间的随机整数。
S(x,y,z)=Sample(x,y,z)%生成S.
这两句不就是吗? reshape就是数据格式的转换.
实在不会就用for循环将数据一个个 ...

这是周期性边界的示意图 您看看 不是病毒您放心
14楼2009-11-25 19:44:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)

引用回帖:
Originally posted by tc1788 at 2009-11-25 19:44:

这是周期性边界的示意图 您看看 不是病毒您放心

你要熟悉图像的二值运算这个是不难的.
两种方式可处理:
1. 修改处于边缘连通分量的记数及标记. 用imfill(BW,'holes')就可以间接实现.
2. 直接修改找连通区域的算法bwlabel. 找本讲形态学处理的书看懂找连通区域的算法. Gonzalez那本<<数字图像处理>>上好像就有.
先告诉你方法你自己去试试吧, 实在不会我写给你代码.
15楼2009-11-28 12:59:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)


tc1788(金币+1,VIP+0):谢谢!!! 12-7 18:56
引用回帖:
Originally posted by string121 at 2009-11-28 12:59:

你要熟悉图像的二值运算这个是不难的.
两种方式可处理:
1. 修改处于边缘连通分量的记数及标记. 用imfill(BW,'holes')就可以间接实现.
2. 直接修改找连通区域的算法bwlabel. 找本讲形态学处理的书看懂找连通 ...

抽空写了下code, 有些地方写的不好,但能解决你的问题:

clc;clear;
row=9;col=9;dep=1;%维数
x=1:row; %x坐标值,正整数,不是的话转化(平移,伸缩)一下。
y=1:col; %y坐标值
z=1:dep; %z坐标值
Sample=reshape(round(1+2*rand(row*col*dep,1)),[row,col,dep]);%产生
%1-3之间的随机整数。
S(x,y,z)=Sample(x,y,z)%生成S.

if size(S,3)==1
    padvec=[1 1];
else
    padvec=[1 1 1];
end

for i=min(min(min(S))):max(max(max(S)))
  BW=S==i;   %生成二值图。
  [L1,num1]=bwlabeln(BW,26); %找连通区域。
  %以下用于处理周期边值下边界连通区域的合并。
  L2=padarray(L1,padvec,0);
  L3=padarray(L1,padvec,'circular'); %周期延拓一个像素。
  BW1=padarray(BW,padvec,'circular');
  L4=bwlabeln(BW1,26);
  BW2=padarray(BW,padvec,0);
  ind1=find(BW1-BW2==1); % 找到可能需要合并的连通区域的位置。
  for j=1:length(ind1)
     a=ind1(j);
     ind2=find(L4==L4(a));
     if length(ind2)~=1
         b=unique(L3(ind2));
         for k=1:length(b)
             c=b(k);
             L2(L2==c)=b(1);
         end
     end  
  end

  num=0;
  for j=1:max(max(max(L2)));
     area=length(find(L2==j));
     if area~=0
        num=num+1;
        L_num(num)=area; %计算个数。
     end
  end
  %输出显示
  fprintf(['值为 ' num2str(i) ' 的连通区域共有%d个,分布个数为\n'],num);
  for k=1:num
    fprintf(['连通分量' num2str(k) ': %d个\n'],L_num(k));
  end
  fprintf('\n');
end

你要处理的3D数据量很大的话中间那几段for改用mex文件.
16楼2009-11-28 15:51:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tc1788

铁虫 (小有名气)

引用回帖:
Originally posted by string121 at 2009-11-28 15:51:

抽空写了下code, 有些地方写的不好,但能解决你的问题:

clc;clear;
row=9;col=9;dep=1;%维数
x=1:row; %x坐标值,正整数,不是的话转化(平移,伸缩)一下。
y=1:col; %y坐标值
z=1:dep; %z坐标值
Sample=r ...

您好 这段程序我用了一下 我的数据中不是123
而是01234等
运行的时候提示Attempted to access b(3); index out of bounds because numel(b)=2. 怎么回事呢?
17楼2009-12-01 21:17:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)

引用回帖:
Originally posted by tc1788 at 2009-12-1 21:17:

您好 这段程序我用了一下 我的数据中不是123
而是01234等
运行的时候提示Attempted to access b(3); index out of bounds because numel(b)=2. 怎么回事呢?

数据只要是整数都行,没有关系.
我试过了.
提示是说b的指标超界了. b只有2个元素, 而用到了b(3).
你把k=1:length(b)换成k=1:numel(b)试下.
18楼2009-12-02 00:45:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tc1788

铁虫 (小有名气)

引用回帖:
Originally posted by string121 at 2009-12-2 00:45:

数据只要是整数都行,没有关系.
我试过了.
提示是说b的指标超界了. b只有2个元素, 而用到了b(3).
你把k=1:length(b)换成k=1:numel(b)试下.

Sample=reshape(round(1+2*rand(row*col*dep,1)),[row,col,dep]);%产生
我已经把1变成0,2变为4,之后就没有这个问题了。这样是不是就真的没有问题了,是与你提供的方法解决同样问题?
19楼2009-12-02 23:26:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)

引用回帖:
Originally posted by tc1788 at 2009-12-2 23:26:


Sample=reshape(round(1+2*rand(row*col*dep,1)),[row,col,dep]);%产生
我已经把1变成0,2变为4,之后就没有这个问题了。这样是不是就真的没有问题了,是与你提供的方法解决同样问题?

Yes, of course.
20楼2009-12-03 00:13:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 tc1788 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 求调剂 +16 张番茄不炒蛋 2026-04-10 17/850 2026-04-12 13:58 by 熬夜成!
[考研] 211本科材料化工求调剂 +15 YHLAH 2026-04-11 16/800 2026-04-12 12:44 by BruceLiu320
[考研] 电气专硕320求调剂 +6 小麻子111 2026-04-10 6/300 2026-04-12 10:54 by lemon6009
[考研] 2本,初试303,0860求调剂 +4 floriea 2026-04-12 6/300 2026-04-12 10:40 by floriea
[考研] 一志愿华中农微生物,288分,三年实验经历 +11 代fish 2026-04-09 11/550 2026-04-12 10:21 by Hayaay
[考研] 299求调剂 +8 ZVVZ13 2026-04-08 8/400 2026-04-12 00:40 by 蓝云思雨
[考研] 药学专硕调剂 +8 ? 一路生?花? 2026-04-10 10/500 2026-04-11 21:21 by zhouxiaoyu
[考研] 本人女孩 +7 吼吼, 2026-04-10 9/450 2026-04-11 14:45 by ACS Nano——
[考研] 生物学调剂 可调剂到生物与医药 +8 李政莹 2026-04-06 9/450 2026-04-11 10:36 by wwj2530616
[考研] 297求调剂 +9 Kwgyz 2026-04-09 9/450 2026-04-11 10:09 by zhq0425
[考研] 22408 327分求调剂 +4 韵风kon 2026-04-10 4/200 2026-04-11 09:51 by 猪会飞
[考研] 材料与化工调剂 +12 否极泰来2026 2026-04-10 13/650 2026-04-11 00:28 by wangjihu
[考研] 计算机类求调剂,22408-274分 +7 上岸de小虫 2026-04-09 8/400 2026-04-10 19:56 by fxue1114
[考研] 085404 298分求调剂 +10 呼啦呼啦呼呼呼 2026-04-10 11/550 2026-04-10 16:44 by wangy0907
[考研] 298求调剂 +13 钉叮咚冬瓜 2026-04-09 13/650 2026-04-10 15:49 by jiajinhpu
[考研] 311求调剂 +6 surte 2026-04-08 13/650 2026-04-09 14:00 by surte
[考研] 328求调剂 +17 lftmya 2026-04-07 18/900 2026-04-09 08:05 by 5268321
[考研] 307求调剂 +14 超级伊昂大王 2026-04-06 14/700 2026-04-08 07:03 by 无际的草原
[考研] 求助 +3 卡卡东88 2026-04-06 4/200 2026-04-06 15:28 by going home
[考研] 308求调剂 +3 终不似从前 2026-04-05 3/150 2026-04-05 22:23 by hemengdong
信息提示
请填处理意见