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"

 Akzeptierte Antwort

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

Weitere Antworten (1)

Santi
Santi am 21 Dez. 2016
Bearbeitet: Santi am 21 Dez. 2016
Thank you for this great approach; worked and very easy to understand.
Best regards

Gefragt:

am 20 Dez. 2016

Bearbeitet:

am 21 Dez. 2016

Community Treasure Hunt

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

Start Hunting!

Translated by