Automatic curve extraction from image
조회 수: 16 (최근 30일)
이전 댓글 표시
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
답변 (1개)
Image Analyst
2023년 2월 12일
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.).
참고 항목
카테고리
Help Center 및 File Exchange에서 Image Processing Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
