【发布时间】:2019-05-25 20:52:33
【问题描述】:
考虑下图:
在左侧,假设我有 3 个标签。背景= 1,黑色= 2,橙色= 3。我想要做的是能够首先识别所有橙色的连接组件,然后如果有黑色物体接触橙色,那么我想转换这也是橙色的。
我知道以下步骤:
- 假设标记的图像称为
labeled。我做orange = labeled == 3 CC = bwconncomp(orange);
但是从这里开始,我不确定如何检查是否有任何黑色组件接触到橙色。一旦我知道哪些黑色组件接触了橙色,我可以执行以下操作:RP = regionprops(black, 'PixelIdxList'); labeled(RP(index).PixelIdxList) = 3;
测试代码:这里是一个输入和输出生成示例:
%input matrix
I = zeros([8 8]);
I(1:5, 1:5) = 1;
I(2:4, 3:7) = 2;
I(7:8, 1:2) = 1;
I(7:8, 7:8) = 2;
I
%output
O = zeros([8 8]);
O(1:5, 1:5) = 1;
O(2:4, 3:7) = 1;
O(7:8, 1:2) = 1;
O(7:8, 7:8) = 2;
O
【问题讨论】:
标签: matlab image-processing computer-vision