Допустим, у вас есть монохроматическое изображение (черно-белое), которое называется 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
должна удалить только нижнюю половину вашего изображения.