24小时热门版块排行榜    

查看: 1090  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 323求调剂 +6 洼小桶 2026-03-18 6/300 2026-03-23 00:29 by king123!
[考研] 招08考数学 +4 laoshidan 2026-03-20 8/400 2026-03-22 19:56 by 小皮蛋酱
[考研] 一志愿 西北大学 ,070300化学学硕,总分287,双非一本,求调剂。 +3 晨昏线与星海 2026-03-20 3/150 2026-03-22 16:00 by ColorlessPI
[考博] 招收博士1-2人 +3 QGZDSYS 2026-03-18 4/200 2026-03-22 10:25 by QGZDSYS
[考研] 0856材料专硕353求调剂 +4 NIFFFfff 2026-03-20 4/200 2026-03-22 09:49 by 2026paper
[考研] 286分人工智能专业请求调剂愿意跨考! +4 lemonzzn 2026-03-17 8/400 2026-03-21 22:49 by lemonzzn
[考研] 306求0703调剂一志愿华中师范 +5 纸鱼ly 2026-03-21 5/250 2026-03-21 17:11 by 学员8dgXkO
[考研] 求调剂 +3 .m.. 2026-03-21 4/200 2026-03-21 16:25 by barlinike
[考研] 材料学学硕080502 337求调剂-一志愿华中科技大学 +4 顺顺顺mr 2026-03-18 5/250 2026-03-21 10:22 by luoyongfeng
[考研] 296求调剂 +6 www_q 2026-03-18 10/500 2026-03-20 23:56 by JourneyLucky
[考研] 一志愿 西北大学 ,070300化学学硕,总分287,双非一本,求调剂。 +4 晨昏线与星海 2026-03-19 4/200 2026-03-20 22:15 by JourneyLucky
[考研] 一志愿西南交通 专硕 材料355 本科双非 求调剂 +5 西南交通专材355 2026-03-19 5/250 2026-03-20 21:10 by JourneyLucky
[考研] 一志愿 南京航空航天大学大学 ,080500材料科学与工程学硕 +5 @taotao 2026-03-20 5/250 2026-03-20 20:16 by JourneyLucky
[考研] 材料学硕318求调剂 +5 February_Feb 2026-03-19 5/250 2026-03-19 23:51 by 23Postgrad
[考研] 材料与化工求调剂 +7 为学666 2026-03-16 7/350 2026-03-19 14:48 by 尽舜尧1
[考研] 一志愿福大288有机化学,求调剂 +3 小木虫200408204 2026-03-18 3/150 2026-03-19 13:31 by houyaoxu
[考研] 收复试调剂生 +4 雨后秋荷 2026-03-18 4/200 2026-03-18 14:16 by elevennnne
[考研] 312求调剂 +8 陌宸希 2026-03-16 9/450 2026-03-18 12:39 by Linda Hu
[考研] 0703化学调剂 +3 妮妮ninicgb 2026-03-17 3/150 2026-03-18 10:29 by macy2011
[考研] 一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项 +6 大火山小火山 2026-03-16 8/400 2026-03-17 15:05 by 无懈可击111
信息提示
请填处理意见