Extract horizontal and vertical lines from raster image

8 vues (au cours des 30 derniers jours)
Abdul Hannan Qureshi
Abdul Hannan Qureshi le 7 Juin 2022
I am trying to extract horizantal and vertical bars seprately from following raster image.
I am using two combination of functions
First functions combination (parameters value may vary)
SE = strel('line',60,0);
% OR
SE = strel('rectangle',[1 70]);
s=imerode(Iraster,SE);
s=imdilate(s,SE);
Second functions combination
mask = imclearborder(Iraster);
props = regionprops(mask, 'Area');
allAreas = sort([props.Area])
mask = ~bwareaopen(~mask, 10000);
mask = imclose(mask, true(5));
mask = ~bwareaopen(~mask, 10000);
mask = bwareafilt(mask, 1);
barsH = medfilt2(mask, [1, 115]);
props = regionprops(barsH, 'Area', 'PixelList');
allAreas = sort([props.Area])
props = regionprops(barsH, 'Area', 'PixelList');
allAreas = sort([props.Area])
The outcomes are not satisfactory, as outputs are not smooth like in original image.
Are there any other functions that can be helpful ?. I raster.mat is enclosed.

Réponse acceptée

yanqi liu
yanqi liu le 7 Juin 2022
yes,sir,may be use open and close operation,such as
load Iraster.mat
bw = im2bw(Iraster);
bw2 = imclose(bw, strel('line', 1e2, 0));
bw3 = imopen(bw2, strel('line', 50, 90));
bw3 = imclose(bw3, strel('line', 2e3, 90));
bw3 = imdilate(bw3, strel('disk', 9));
bw3 = logical(bw3.*bw2);
bw4 = logical(~bw3.*bw2);
bw4 = imclose(bw4, strel('line', 3e2, 0));
bw4 = bwareaopen(bw4, 1e3);
bw4 = logical(bw4.*bw2);
figure; imshow(bw2);
figure; imshow(bw3);
figure; imshow(bw4);
  3 commentaires
Image Analyst
Image Analyst le 8 Juin 2022
Modifié(e) : Image Analyst le 8 Juin 2022
1e2 = 1 * 10 ^ 2 = 100.
1e3 = 1 * 10 ^ 3 = 1000.
format long g
1e2
ans =
100
1e3
ans =
1000
Abdul Hannan Qureshi
Abdul Hannan Qureshi le 10 Juin 2022
@Image Analyst thank you for clarifying this.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Images dans Help Center et File Exchange

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by