Get inidces for specific conditions from binary mask
6 次查看(过去 30 天)
显示 更早的评论
Dear MATLAB-Community,
I have a binary mask M (attached).
I would like to get the indices that match the following condition: Find all "1" that have at least one "0" as a neighboring entry.
I have tried a lot the last days but did not find a solution. It would be great if someone could help me with that.
Best regards!
0 个评论
采纳的回答
Walter Roberson
2021-10-31
NC = conv2(M, [1 1 1; 1 0 1; 1 1 1], 'same');
mask = M & (NC < 8);
%now you can find() on mask
更多回答(1 个)
Image Analyst
2021-10-31
There is a built-in function for this in the Image Processing Toolbox. It's called bwperim(). Full demo:
s = load('m.mat')
M = s.M;
subplot(2, 1, 1);
imshow(M, [])
axis('on', 'image')
% Find all 1 that have a zero as a neighbor.
% We can use bwperim() for this
perimImage = bwperim(M);
subplot(2, 1, 2);
imshow(perimImage, [])
axis('on', 'image')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/785188/image.png)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!