Detection / Identification of a curve in an image
40 views (last 30 days)
Show older comments
Muskan Agrawal
on 23 May 2020
Answered: Muskan Agrawal
on 26 May 2020
Well I need help in how to identify a curve in image.
Like we can use hough transform for lines and circles. Is there any function, which I can use for this purpose. I am attaching an image on which I have to work.
Please do help. The image has curves which I have to detect.
0 Comments
Accepted Answer
Image Analyst
on 23 May 2020
Call bwlabel() to give each curve it's own unique ID number.
2 Comments
Image Analyst
on 26 May 2020
You shouldn't have to do it manually with bwselect. bwlabel() does it for you. Look:
grayImage = imread('image.jpeg');
binaryImage = grayImage(:,:,1) > 200;
% Crop off huge white frame surrounding the image.
binaryImage = binaryImage(46:1058, 1094:1295);
subplot(1, 2, 1);
imshow(binaryImage);
fontSize = 15;
title('Binary Image', 'FontSize', fontSize);
% Label each blob with 8-connectivity, so we can make measurements of it
[labeledImage, numberOfBlobs] = bwlabel(binaryImage, 8);
% Apply a variety of pseudo-colors to the regions.
coloredLabelsImage = label2rgb (labeledImage, 'hsv', 'k', 'shuffle');
% Display the pseudo-colored image.
subplot(1, 2, 2);
imshow(coloredLabelsImage);
title('Labeled Image', 'FontSize', fontSize);
impixelinfo
% Get all the blob properties. Can only pass in originalImage in version R2008a and later.
blobMeasurements = regionprops(labeledImage, 'all');
numberOfBlobs = size(blobMeasurements, 1);
See, each individually colored connected region is one blob.
To get a histogram of orientations, do this:
allOrientations = [blobMeasurements.Orientation];
figure
numBins = 180;
histogram(allOrientations, numBins);
caption = sprintf('Histogram of %d Orientations', numberOfBlobs);
title(caption, 'FontSize', fontSize);
grid on;
More Answers (1)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!