How to check neighbouring elements in a 2D array

I have a 2D array (~1000x1000) of intensity values that I would like to transform into an image to use as a mask for data processing in another program. I would like to mask out the dark lines and the corners:
What I am thinking is that for each element in the array, the neighbouring values (e.g. in a set radius) are checked for the proportion of zero values. If the proportion of zero values is above a set threshold, it should return a zero and otherwise it should return a one.
Happy to hear suggestions about other ways of going about this, and thank you in advance.

댓글 수: 2

KSSV
KSSV 2023년 6월 19일
To checl neighbouring elements read about knnsearch. What exactly you are epxecting? You want to make black lines inside the whitre region to white?
Basically I would like the black regions (lines and corners) to be solid black, and the white regions to be solid white.
Here is an example of a type of output I'd be looking for, noting that it doesn't have the corners cut out.

댓글을 달려면 로그인하십시오.

 채택된 답변

Matt J
Matt J 2023년 6월 19일
편집: Matt J 2023년 6월 19일
load Image
BW=bwareaopen(~BW,100);
se=ones(7);
BW=medfilt2(BW,size(se));
BW=bwareaopen(BW,100);
BW=~bwareaopen(~BW,100);
BW=imclose(BW,se);
BW=conv2(BW,ones(5),'same')>0.5;
imshow(BW,[]); shg

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Display Image에 대해 자세히 알아보기

제품

릴리스

R2022b

질문:

2023년 6월 19일

댓글:

2023년 6월 19일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by