This image correspond to a specimen deformed in the vertical direction. Would you have any suggestion to lift deformed pixels and make a "perfecly horizontal block"

1 view (last 30 days)
NOTE: A mask can be easily created. Thank you.

Accepted Answer

Image Analyst
Image Analyst on 20 Dec 2016
Just go along your mask finding the top line, then use circshift or imtranslate or simple indexing to lift the line.
[rows, columns] = size(mask);
for col = 1 : columns
thisColumn = grayImage(:, col);
topLine = find(mask(:, col), 1, 'first');
thisColumn = [thisColumn(topLine:end), zeros(topLine-1, 1)];
grayImage(:, col) = thisColumn;
end

More Answers (1)

Santi
Santi on 21 Dec 2016
Edited: Santi on 21 Dec 2016
Thank you for this great approach; worked and very easy to understand.
Best regards

Categories

Find more on Image Processing Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!