24小时热门版块排行榜    

查看: 1321  |  回复: 20
当前主题已经存档。

tc1788

铁虫 (小有名气)

[交流] 【求助】类似于“二值图像的标识“的问题

我有一三维图,想统计特定的点(1或2或3)的相邻情况,如果相邻有多少个相邻。相邻意味着坐标点之间距离有一个定值(通过xyz x‘y’z’计算)。我现在有一个Excell表 里面有点的坐标 xyz 及点的类型。例如下面的123代表类型 二维排列是这样。可以说两个3相邻,5个2相邻,5个1中 3个1邻为一组,2个1邻为一组。我想统计我的立体图中有几组由2组成的小组,几组由3组成的一组等等。
1 1 1 2
2 3 2 2
3 2 1 1
我没接触过图像,专业术语也不懂。请大家给予提示帮助(我只看过这和二值图像的标识别类似,但标识没介绍具体内容 我不知道怎么实现这个统计)。有没有这方面的代码。
先谢谢大家的帮助
例如 矩阵里面是m*4的内容,前三个是xyz第四列是类型。是一个三维立体图形,如何统计呢 只需要统计各个类型在三维中是如何连通的。
例如
x y z m
0 0 1 2
0 0 2 3
0 0 3 4
0 0 4 3
0 0 5 3
0 0 6 3
0 0 7 2
0 0 8 1

[ Last edited by tc1788 on 2009-11-12 at 20:47 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)


tc1788(金币+1,VIP+0):您能说的详细些吗 这些数据在excell表里 我是不是要把它变成图像 还是看数据就你能做 我想要数数个数怎么计数 11-11 14:01
找同一标记相邻情况:
就是几何性质中的连通分量. 用matlab几个find与bwlabeln就可以实现.
不同标记的相邻可以通过处理转化为前一种情况.
2楼2009-11-11 13:28:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tc1788

铁虫 (小有名气)

引用回帖:
Originally posted by string121 at 2009-11-11 13:28:
找同一标记相邻情况:
就是几何性质中的连通分量. 用matlab几个find与bwlabeln就可以实现.
不同标记的相邻可以通过处理转化为前一种情况.

您能说的详细些吗 这些数据在excell表里 我是不是要把它变成图像 还是看数据就你能做 我想要数数个数怎么计数
3楼2009-11-11 13:38:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)

★ ★ ★ ★ ★ ★
tc1788(金币+2,VIP+0):先谢谢你了 我去试试 11-12 10:03
tc1788(金币+1,VIP+0):谢谢,我试过了 可能我的问题没有描述明白 我想重新描述一下 您看看您的程序是不是可以针对它使用 11-12 19:57
bslt(金币+3,VIP+0):感谢热心回复,欢迎常来! 11-14 10:12
图像只是数据的一种表现形式,有数据就行.
e.g. Matlab处理:
1. 用函数xlsread将excel表格中的数据读进matlab,构成一个3D矩阵S. S的三个维分别代表x,y,z. S的元素是1,2,3之类的. 如果你的数据x,y,z不是正整数得做点坐标转化.
2. 比喻检测3的连通性.
ind=find(S==3);
BW=repmat(false,size(S));
BW(ind)=true;
[L,num]=bwlabeln(BW,26);%按你的要求应该是26l连通. num:连通分量个数.
for j=1:num
L_num(j)=length(find(L==j));
end

上述结果num表示连在一起的3有num组. 第j组有L_num(j)个3.
我没有具体数据,不知道对不对. 试试就知道了.
4楼2009-11-11 17:27:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)

你给的数据其实是1D的. 前面不是给你代码了吗?
Matlab code,e.g:
clc;clear;
row=9;col=9;dep=9;%维数
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.
for i=min(S():max(S()
BW=S==i;   %生成二值图。
[L,num]=bwlabeln(BW,26);%检测连通分量。按你的要求应该是26连通.
%num:连通分量个数.
for j=1:num
L_num(j)=length(find(L==j)); %计算个数。
end
%输入显示
fprintf(['值为 ' num2str(i) ' 的连通区域共有%d个,分布个数为\n'],num);
for k=1:num
    fprintf(['连通分量' num2str(k) ': %d个\n'],L_num(k));
end
fprintf('\n');
end


将dep设为1,看看2D下是不是你要的.
5楼2009-11-14 11:30:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)

是 : )
6楼2009-11-14 11:32:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tc1788

铁虫 (小有名气)

引用回帖:
Originally posted by string121 at 2009-11-14 11:30:
你给的数据其实是1D的. 前面不是给你代码了吗?
Matlab code,e.g:
clc;clear;
row=9;col=9;dep=9;%维数
x=1:row; %x坐标值,正整数,不是的话转化(平移,伸缩)一下。
y=1:col; %y坐标值
z=1:dep; %z坐标值
S ...

您好 我试了一下有点问题 您给看看
S=[0        0        0        1
1        0        0        1
2        0        0        0
0        1        0        1
1        1        0        0
2        1        0        1
0        2        0        0
1        2        0        1
2        2        0        1
];
clc;clear;
row=9;col=9;dep=9;%维数
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.
for i=min(S():max(S()
BW=S==i;   %生成二值图。
[L,num]=bwlabeln(BW,26);%检测连通分量。按你的要求应该是26连通.
%num:连通分量个数.
for j=1:num
L_num(j)=length(find(L==j)); %计算个数。
end
%输入显示
fprintf(['值为 ' num2str(i) ' 的连通区域共有%d个,分布个数为\n'],num);
for k=1:num
    fprintf(['连通分量' num2str(k) ': %d个\n'],L_num(k));
end
fprintf('\n');
end>>
??? for i=min(S():max(S()
                  |
Error: Unbalanced or unexpected parenthesis or bracket.
我是超级菜鸟了 谢谢您给予指点啊

[ Last edited by tc1788 on 2009-11-17 at 14:05 ]
7楼2009-11-17 13:54:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)

就笑脸的地方是冒号括号: ).
下面的可以直接粘贴到命令窗口了.
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.
for i=min(min(min(S))):max(max(max(S)))
BW=S==i;   %生成二值图。
[L,num]=bwlabeln(BW,26);%检测连通分量。按你的要求应该是26连通.
%num:连通分量个数.
for j=1:num
L_num(j)=length(find(L==j)); %计算个数。
end
%输出显示
fprintf(['值为 ' num2str(i) ' 的连通区域共有%d个,分布个数为\n'],num);
for k=1:num
    fprintf(['连通分量' num2str(k) ': %d个\n'],L_num(k));
end
fprintf('\n');
end
8楼2009-11-17 19:12:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)

引用回帖:
Originally posted by tc1788 at 2009-11-17 13:54:

您好 我试了一下有点问题 您给看看
S=[0        0        0        1
1        0        0        1
2        0        0        0
0        1        0        1
1        1        0        0
2        1        0        1
0        2        0        0
1        2        0        1
2        2        0        1
];
clc;clear;
row=9;col=9;dep=9;%维数
x=1:row; %x坐标值,正整数,不是的 ...

放错地方了. 你注意看我开始的.
9楼2009-11-17 19:26:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liliang9425

铜虫 (小有名气)

我做的都是二维的图像
10楼2009-11-17 20:05:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 tc1788 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 关于代码变化问题,想知道的进来 +11 且听虎啸 2026-08-07 14/700 2026-08-08 12:50 by 布布和一二
[基金申请] 这样的filecode谁见过 +3 布布和一二 2026-08-08 5/250 2026-08-08 12:22 by 仁砚薪传
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +4 a089 2026-08-07 4/200 2026-08-08 12:15 by arzu_hma
[找工作] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 Vi50GxzrFcSG 2026-08-07 4/200 2026-08-08 10:39 by 3OOjAIS77qg2
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 Vi50GxzrFcSG 2026-08-07 6/300 2026-08-08 10:19 by 3OOjAIS77qg2
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 HEQlVqMTIA7d 2026-08-07 4/200 2026-08-08 08:27 by 6vVgjDL4CnGu
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 HEQlVqMTIA7d 2026-08-07 3/150 2026-08-08 03:47 by 6vVgjDL4CnGu
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 化学口download_prp&fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] 听说今天filecode变了 +24 布布和一二 2026-08-06 47/2350 2026-08-07 16:02 by zhiyanjiang
[基金申请] filecode与中标关系的预测 +3 布布和一二 2026-08-07 3/150 2026-08-07 15:09 by gltch
[论文投稿] 十年后又回来了,论文投稿求助 +4 哈哈114477 2026-08-01 4/200 2026-08-07 14:39 by jgy194592
[基金申请] filecode +14 等待解的谜 2026-08-06 19/950 2026-08-07 12:20 by wlwhappy
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
[基金申请] 8月时间戳变的,举个手。玩一下,释放压力 +9 archvillain 2026-08-04 11/550 2026-08-05 20:06 by wlwhappy
[基金申请] 好消息?这个有何含义??? +8 Tide man 2026-08-05 10/500 2026-08-05 16:14 by xmuxiaoyu
[考博] 【2027博士申请】纳米药物递送方向 20+3 13586093586 2026-08-03 4/200 2026-08-05 09:59 by lfy8008
[基金申请] 有没有H口的?有收到消息的吗? +3 超级海虾 2026-08-04 3/150 2026-08-04 17:26 by 学教育滴
[基金申请] 面上提前没消息,有中的吗 +14 archvillain 2026-08-02 18/900 2026-08-04 14:42 by archvillain
信息提示
请填处理意见