Допустим, у вас есть монохроматическое изображение (черно-белое) с именем Image3
. Как вы уже сказали, вы вычисляете ограничивающую рамку вокруг ваших «искажений».
[labeledImage, numberOfBlobs] = bwlabel(Image3);
measurements = regionprops(labeledImage, 'BoundingBox');
Вычисляя ограничивающую рамку regionprops
, вы, очевидно, вычисляете положение ваших искажений, но это с моей точки зрения избыточно, вероятно, избыточно. Вы можете просто написать:
[labeledImage, numberOfBlobs] = bwlabel(Image3);
[x,y]=size(labeledImage);
height_from_top = 0.8;
width_from_left = 1.0;
endIdx_y = round(y*height_from_top);
endIdx_x = round(x*width_from_left);
labeledImage(1:endIdx_x ,1:endIdx_y)=0;
Image3(labeledImage>0)=0; % or 1, depending on the colour...
Очень вероятно, что мои показатели не совсем совпадают. К сожалению, я не могу проверить это прямо сейчас, но эта модификация должна исключить вашу нижнюю и самую правую границу в зависимости от того, какой процент изображения вы хотите отфильтровать в каждом направлении. Например. установка height_from_top
на 0.5
должна удалить только нижнюю половину вашего изображения.
10.12.2018