24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1096  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 调剂 +3 李嘉图·S·路 2026-03-27 3/150 2026-03-27 11:19 by wangjy2002
[考研] 275求调剂 +4 jjjjjjjjjjl 2026-03-27 4/200 2026-03-27 11:08 by wangjy2002
[考研] 一志愿211,335分,0856,求调剂院校和导师 +3 倾____萧 2026-03-27 4/200 2026-03-27 10:15 by 不吃魚的貓
[考研] 349求调剂 +4 李木子啊哈哈 2026-03-25 4/200 2026-03-26 22:49 by fmesaito
[考研] 08开头275求调剂 +3 拉谁不重要 2026-03-26 3/150 2026-03-26 20:22 by barlinike
[考研] 281求调剂 +3 亚克西good 2026-03-26 5/250 2026-03-26 19:48 by 不吃魚的貓
[考研] 352求调剂 +4 大米饭! 2026-03-22 4/200 2026-03-26 16:40 by 不吃魚的貓
[考研] 289求调剂 +17 硕星赴 2026-03-23 17/850 2026-03-26 16:18 by 不吃魚的貓
[考研] 279 分 求调剂 +3 睡个好觉_16 2026-03-24 3/150 2026-03-26 15:43 by zzll406
[考研] 一志愿 南京邮电大学 288分 材料考研 求调剂 +3 jl0720 2026-03-26 3/150 2026-03-26 13:39 by zzll406
[考研] 材料专硕 335 分求调剂 +4 拒绝冷暴力 2026-03-25 4/200 2026-03-25 18:45 by haxia
[考研] 0854AI CV方向招收调剂 +4 章小鱼567 2026-03-23 4/200 2026-03-25 17:04 by CoderLoser
[考研] 277分求调剂,跨调材料 +3 考研调剂lxh 2026-03-24 3/150 2026-03-24 13:52 by JourneyLucky
[考研] 336求调剂 +4 收到VS 2026-03-20 4/200 2026-03-23 19:02 by macy2011
[考研] 生物学一志愿985,分数349求调剂 +6 zxts12 2026-03-21 9/450 2026-03-23 18:37 by macy2011
[考研] 求老师收我 +3 zzh16938784 2026-03-23 3/150 2026-03-23 12:56 by ztnimte
[考研] 276求调剂 +3 YNRYG 2026-03-21 4/200 2026-03-23 08:31 by 醉在风里
[考研] 材料学硕301分求调剂 +7 Liyouyumairs 2026-03-21 7/350 2026-03-21 22:31 by peike
[考研] 初试 317 +7 半拉月丙 2026-03-20 7/350 2026-03-21 22:26 by peike
[考研] 0703化学调剂 +4 妮妮ninicgb 2026-03-21 4/200 2026-03-21 18:39 by 学员8dgXkO
信息提示
请填处理意见