24小时热门版块排行榜    

查看: 550  |  回复: 1

xiyue6911

新虫 (小有名气)

[交流] 分割图的邻接矩阵仿真

小弟最近研究基于对象的目标检测,第一步进行多尺度分割,
右图为待转化的分割图像,左图为邻接矩阵,行和列表示[1 2 3 4 5 6 7];
关键是,区域相连判断,思路:遍历区域边界,unique边界点的8邻域;
现存问题:如何将邻接矩阵进行可视化,要用labview吗?
自己写的将分割好的图像转化为邻接矩阵:
CODE:
x = repmat(uint8(0),[512 512]);
x(1:512,256)=255;x(170,1:256)=255;x(340,1:256)=255;x(85,256:356)=255;x(170,356:512)=255;x(340,356:512)=255;
x(85:340,356)=255;x(390,356:456)=255;x(450,356:456)=255;x(390:450,356)=255;x(390:450,456)=255;
x = ~im2bw(x);
[L num] = bwlabel(x,8);%邻接区域个数
regionmat = zeros(num);%存储邻接矩阵
imshow(L);
stats = regionprops(L);%构造区域个节点;
for i = 1:num
    node(i).id = i;
    node(i).data = stats(i);
    node(i).relaedge = [1 1 1];
    node(i).weight = [1 1 1];
end
[r c] = find(L==0);%遍历所有边界点
%遍历边界点的8邻域,构造区域邻接集合
[r1 c1] = size(L);
L_new = zeros(r1+2,c1+2);
L_new(2:(size(L_new,1)-1),2:(size(L_new,2)-1)) = L;
col = 8;%最多连通区域;
for i = 1:(size(r,1))
    temp = [L_new(r(i)-1+1,c(i)-1+1) L_new(r(i)-1+1,c(i)+1) L_new(r(i)-1+1,c(i)+1+1);
                    L_new(r(i)+1,c(i)-1+1) L_new(r(i)+1,c(i)+1) L_new(r(i)+1,c(i)+1+1);
                    L_new(r(i)+1+1,c(i)-1+1) L_new(r(i)+1+1,c(i)+1) L_new(r(i)+1+1,c(i)+1+1);];
    p = zeros(1,col);
    temp = unique(temp(:));
    temp = setdiff(temp,0);
    p(1:length(temp)) = temp;
    relas(i,:) = p;
end
relas = unique(relas,'rows');
%赋值邻接矩阵
for i = 1:size(relas,1)
    temp =setdiff(relas(i,:),0);
    cn = nchoosek(temp,2);
    for j =1:size(cn,1)
        regionmat(cn(j,1),cn(j,2)) = 1;
    end
end
disp('regionmat:');disp(regionmat);

分割图的邻接矩阵仿真
测试.JPG

[ Last edited by dbb627 on 2015-11-14 at 14:46 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiyue6911

新虫 (小有名气)

升级版本
直接运行可以生成可视化图形结构
%分割图的邻接矩阵仿真
CODE:
x = repmat(uint8(0),[512 512]);
x(1:512,256)=255;x(170,1:256)=255;x(340,1:256)=255;x(85,256:356)=255;x(170,356:512)=255;x(340,356:512)=255;
x(85:340,356)=255;x(390,356:456)=255;x(450,356:456)=255;x(390:450,356)=255;x(390:450,456)=255;
locations = [85,128;265,128;425,128;425,400;265,300;265,400;85,400];
x = ~im2bw(x);
[L num] = bwlabel(x,8);%邻接区域个数
regionmat = zeros(num);%存储邻接矩阵
figure(1),imshow(L);
for i = 1:size(locations,1)
    text(locations(i,2),locations(i,1),num2str(i));
end
stats = regionprops(L);%构造区域个节点;
for i = 1:num
    node(i).id = i;
    node(i).data = stats(i);
    node(i).relaedge = [1 1 1];
    node(i).weight = [1 1 1];
end
[r c] = find(L==0);%遍历所有边界点
%遍历边界点的8邻域,构造区域邻接集合
[r1 c1] = size(L);
L_new = zeros(r1+2,c1+2);
L_new(2:(size(L_new,1)-1),2:(size(L_new,2)-1)) = L;
col = 8;%最多连通区域;
for i = 1:(size(r,1))
    temp = [L_new(r(i)-1+1,c(i)-1+1) L_new(r(i)-1+1,c(i)+1) L_new(r(i)-1+1,c(i)+1+1);
                    L_new(r(i)+1,c(i)-1+1) L_new(r(i)+1,c(i)+1) L_new(r(i)+1,c(i)+1+1);
                    L_new(r(i)+1+1,c(i)-1+1) L_new(r(i)+1+1,c(i)+1) L_new(r(i)+1+1,c(i)+1+1);];
    p = zeros(1,col);
    temp = unique(temp(:));
    temp = setdiff(temp,0);
    p(1:length(temp)) = temp;
    relas(i,:) = p;
end
relas = unique(relas,'rows');
%赋值邻接矩阵
for i = 1:size(relas,1)
    temp =setdiff(relas(i,:),0);
    cn = nchoosek(temp,2);
    for j =1:size(cn,1)
        regionmat(cn(j,1),cn(j,2)) = 1;
    end
end
disp('regionmat:');disp(regionmat);
%邻接矩阵图形化;
vertexs = [1 1;1 3;2 .5;2 3.5;3 1;3 3;3.5 2];
[r c] = find(regionmat ~= 0);
%绘制节点
figure(2),
axis([0 5 0 5]);
for i = 1:size(vertexs,1)
    hold on,plot(vertexs(i,1),vertexs(i,2),'go','markersize',10);
    hold on,plot(vertexs(i,1),vertexs(i,2),'gx','markersize',10);
    hold on,text(vertexs(i,1),vertexs(i,2)-0.2,num2str(i));
end
%绘制边界
for i = 1:size(r,1)
    line([vertexs(c(i),1) vertexs(r(i),1)],[vertexs(c(i),2) vertexs(r(i),2)],'color','r','linestyle','-.');
end

分割图的邻接矩阵仿真-1
邻接图示例.JPG
2楼2015-10-27 21:44:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xiyue6911 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[博后之家] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 jzg3xk1po8 2026-07-31 9/450 2026-08-01 15:50 by y4XuShGyllvT
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 jzg3xk1po8 2026-07-31 6/300 2026-08-01 15:46 by y4XuShGyllvT
[考博] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 jzg3xk1po8 2026-07-31 11/550 2026-08-01 15:43 by y4XuShGyllvT
[基金申请] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 jzg3xk1po8 2026-07-31 11/550 2026-08-01 15:43 by y4XuShGyllvT
[基金申请] 小木虫看见有人已经知道结果了 +17 1234567wang 2026-07-25 22/1100 2026-08-01 15:43 by iaeyuan
[教师之家] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 jzg3xk1po8 2026-07-31 8/400 2026-08-01 15:42 by y4XuShGyllvT
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 jzg3xk1po8 2026-07-31 11/550 2026-08-01 15:40 by y4XuShGyllvT
[基金申请] 面上再次挂了,太难了,躺也躺不了,倦也卷不过,小学校之殇! +16 低垂的野花 2026-07-31 21/1050 2026-08-01 15:35 by jklily
[基金申请] 微信指数没变化,科研之友没阅读 +14 wangze12014 2026-07-28 18/900 2026-07-31 18:35 by lzchaihuo
[教师之家] 基础研究怎么拉横向,学校到款任务越来越多,难以完成 拉横向,都有哪些途径啊 +8 锦衣卫寒战 2026-07-28 8/400 2026-07-31 18:13 by beefly
[高分子] HXDI做水性聚氨酯乳液,是不是特别容易出渣 15+3 yuyusuv 2026-07-29 3/150 2026-07-31 09:21 by huizingga
[考博] 申请2027年材料/化学类博士 10+3 考研老狗? 2026-07-25 5/250 2026-07-30 19:33 by 白色木鱼
[基金申请] 你们的时间戳变了吗 +3 archvillain 2026-07-30 4/200 2026-07-30 18:53 by levinzhwen
[有机交流] 产物和副产物价值比较 30+4 小汤02 2026-07-27 5/250 2026-07-30 12:44 by czyzsu
[基金申请] 时间戳他又来了 +14 晓晓爱翠翠 2026-07-26 17/850 2026-07-29 16:30 by 呵呵二哥
[有机交流] 这个自发加氧反应的机理是什么? 50+4 YUAN2273 2026-07-25 7/350 2026-07-29 12:27 by xiaobenpu
[基金申请] 这种情况还有戏吗 +5 drbart 2026-07-27 11/550 2026-07-29 05:50 by drbart
[基金申请] 同事接到电话了,我却没有 +4 1234567wang 2026-07-27 4/200 2026-07-28 10:11 by GOODLUCKER
[基金申请] 准备明年的基金了 +5 Tide man 2026-07-27 5/250 2026-07-28 09:25 by newfuzzy1
[分析] 水蒸气蒸馏法乳化现象 +3 月光娇娇 2026-07-26 3/150 2026-07-26 23:25 by caiyun
信息提示
请填处理意见