Automatic curve extraction from image
19 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi everybody.
I have a series of images like this:

How can I remove background of this image automatically and extract the curves which is shown in the following image?
The output image must be binary. simple thresholding doesn't work.
0 commentaires
Réponses (1)
Image Analyst
le 12 Fév 2023
I'd threshold the image to get a mask, then scan across column by column getting the first row and last row. Something like
mask = grayImage > someThreshold;
[rows, columns] = size(mask);
topRows = nan(1, columns);
bottomrows = nan(1, columns);
for col = 1 : columns
t = find(mask(:, col), 1, 'first');
if ~isempty(t)
topRows(col) = 1;
bottomRows(col) = find(mask(:, col), 1, 'last');
end
end
hold on;
plot(topRows, 'w-', 'LineWidth', 5);
plot(bottomRows, 'n-', 'LineWidth', 5);
adapt as needed.
If you really can't figure it out, then attach your original image (not a screenshot with tickmarks, etc.).
Voir également
Catégories
En savoir plus sur Image Processing Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
