Automatic curve extraction from image
17 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (1)
Image Analyst
el 12 de Feb. de 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.).
Ver también
Categorías
Más información sobre Image Processing Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
