Issues with bwskel skeleton

25 Ansichten (letzte 30 Tage)
Andrew Luce
Andrew Luce am 27 Jul. 2020
Kommentiert: Image Analyst am 6 Aug. 2020
Hello,
I wanted to use bwskel to get a line down this image of a printed line. However, I am getting small line chunks of the outline instead. What am I doing wrong? The code I used is below and I attached the image.
img= imread('C:\Users\aluce\Documents\random lines\25g 1 10 PSI 5 MMS.jpg'); %put in image directly from FLIR camer
imgray = rgb2gray(img); % turn color image to greyscale
[imgray, rect] = imcrop(imgray); %opens up image, drag crop box, double click to select, rect coorinates use for crop
%%
BW = im2bw(imgray,0.8); % convert to binary image
%imshow(BW)
out = bwskel(BW);
imshow(out)

Akzeptierte Antwort

Image Analyst
Image Analyst am 27 Jul. 2020
Andrew:
After you binarized the image, there were some small holes in it that gave loops in the skeleton. I took the largest blob (to get rid of a noise speck) and then filled the holes in the remaining blob. Corrected code:
img= imread('25g 1 10 PSI 5 MMS.jpg'); %put in image directly from FLIR camer
imgray = rgb2gray(img); % turn color image to greyscale
subplot(2, 2, 1);
imshow(imgray, []);
% [imgray, rect] = imcrop(imgray); %opens up image, drag crop box, double click to select, rect coorinates use for crop
BW = im2bw(imgray, 0.8); % convert to binary image
% Take largest blob only.
BW = bwareafilt(BW, 1);
% Fill holes.
BW = imfill(BW, 'holes');
subplot(2, 2, 2);
imshow(BW, []);
%imshow(BW)
minBranchLength = round(sum(BW(:)) / 2)
skelImage = bwskel(BW, 'MinBranchLength', minBranchLength);
subplot(2, 2, 3);
imshow(skelImage)
g = gcf;
g.WindowState = 'maximized'
  5 Kommentare
Andrew Luce
Andrew Luce am 6 Aug. 2020
So I use Hu moments to compare the binary image to an image of the original line ( which has nice sharp edges). Is there a way to flatten out the curve edges to give a better match?
Thnak you
Andrew
Image Analyst
Image Analyst am 6 Aug. 2020
Well you could take a single color channel and threshold it. That would give sharp edges. But of course that was the first step in getting the skeleton image in the first place. So I guess I don't know what you think using Hu's moments would get you.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by