Вы можете решить проблему, используя морфологические операции разрушают и расширяют .
Требуются некоторые предположения относительно соединения, которое вы хотите удалить.
Я сделал следующие предположения:
- Область соединения - это самая большая непрерывная область на изображении.
- Ширина подключенной области составляет около 11 пикселей.
- Форма соединенной области высокая и тонкая.
Вот пример кода:
I = imread('202.png'); %Read image.
I = rgb2gray(I); %Convert from RGB to grayscale.
I = imbinarize(I); %Convert to binary image.
%Erode using large kernel - only the largest area in I is kept white.
Mask = imerode(I, ones(11)); %Result is the only the connection between 2 and the 0
%Expand the mask in the vertical direction
Mask = imdilate(Mask, ones(25, 1));
%Erase the connection by placing zeros.
I(Mask) = 0;
figure;imshow(I)
Код выше:
- Создает маску, стирая все детали, сохраняя только соединение REJOIN.
- Расширить маску по вертикали.
- Удалить маскированные пиксели в исходном изображении.
Результат маски:
Окончательный результат: