Filter löschen
Filter löschen

Detect and remove T/Y joints in a binary image

1 Ansicht (letzte 30 Tage)
Ramin Dastanpour
Ramin Dastanpour am 1 Okt. 2015
Kommentiert: Walter Roberson am 1 Okt. 2015
I have a binary image and I want to detect and remove all pixels with >2 pixels connected to them (e.g. Y and T joints). The image is produced by thinning of the image and all lines have a thickness of 1 pixel. Below is a sample image. My first guess was to check connectivity for all pixels but since I have hundreds of these objects in each image, this approach would be too expensive. Thanks,
  2 Kommentare
Walter Roberson
Walter Roberson am 1 Okt. 2015
Should the result be to break the Y/T into three line segments?
Ramin Dastanpour
Ramin Dastanpour am 1 Okt. 2015
Bearbeitet: Ramin Dastanpour am 1 Okt. 2015
Yes, exactly. But I need to get the index of the pixel on the joint as well. After breaking the joint I want to reconnect the disconnected objects which are in one direction (more).

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 1 Okt. 2015
NewImage = BWimage;
NewImage( (conv2(0+BWImage,[1 1 1;1 0 1;1 1 1],'same') .* BWimage) > 2 ) = 0;
  1 Kommentar
Walter Roberson
Walter Roberson am 1 Okt. 2015
With index:
NewImage = BWImage;
idxmask = (conv2(0+BWImage,[1 1 1;1 0 1;1 1 1],'same') .* BWimage) > 2;
NewImage(idxmask) = 0;
idx = find(idxmask);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by