24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1116  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 301求调剂 +6 XYPLR 2026-04-05 9/450 2026-04-11 20:37 by Delta2012
[考研] 0854调剂 +11 长弓傲 2026-04-09 12/600 2026-04-11 11:16 by zhq0425
[考研] 计算机11408,286分求调剂 +10 木子念晞 2026-04-05 10/500 2026-04-11 10:44 by zhq0425
[考研] 085410-273求调剂 +6 X1999 2026-04-10 6/300 2026-04-11 10:32 by Delta2012
[考研] 311求调剂 +13 xyp想读书 2026-04-10 14/700 2026-04-11 09:41 by 猪会飞
[考研] 266求调剂 +29 阳阳哇塞 2026-04-07 29/1450 2026-04-10 16:20 by 高维春
[考研] 一志愿双非085400电子信息344 求调剂,对材料和化学方向也感兴趣 +8 无情的小羊 2026-04-09 9/450 2026-04-10 09:30 by 松花缸1201
[考研] 生物与医药调剂 +5 十七sa 2026-04-05 5/250 2026-04-10 08:14 by kangsm
[考研] 284求调剂 +7 让我上岸吧阿西 2026-04-09 7/350 2026-04-09 18:59 by haironglove
[考研] 求调剂 +3 猪肉墩粉条cc 2026-04-08 4/200 2026-04-09 10:05 by 猪肉墩粉条cc
[考研] 285求调剂 +12 AZMK 2026-04-05 18/900 2026-04-08 20:43 by 逆水乘风
[考研] 266调剂 +8 daya sun 2026-04-07 9/450 2026-04-08 20:27 by yutian743
[考研] 一志愿华东理工085601材料工程303分求调剂 +15 a1708 2026-04-06 15/750 2026-04-08 16:23 by luoyongfeng
[考研] 电子信息346 +4 zuoshaodian 2026-04-08 4/200 2026-04-08 11:54 by zzucheup
[考研] 求调剂 +15 熊二想上岸 2026-04-06 15/750 2026-04-08 04:53 by 无际的草原
[考研] 344求调剂 +11 魏子per 2026-04-07 11/550 2026-04-07 23:01 by JourneyLucky
[考研] 0854求调剂 +9 亨氏番茄沙司 2026-04-06 10/500 2026-04-07 14:37 by shdgaomin
[考研] 338求调剂 +4 我想上岸ii 2026-04-05 4/200 2026-04-06 21:04 by 木子君1218
[考研] 285求调剂 +5 mapmath 2026-04-06 6/300 2026-04-06 17:18 by 蓝云思雨
[考研] 调剂 +3 李广火 2026-04-05 3/150 2026-04-05 18:57 by 蓝云思雨
信息提示
请填处理意见