Можно ли обрезать изображение вдоль определенной кривой. напр. Я хочу вырезать изображение пальца из этого изображения, но я не хочу обрезать его по прямоугольнику. Обрезка изображения в matlab
0
A
ответ
0
вам нужна двоичная маска и применять эту маску, как альфа-карта вот как это обычно делается
s = 100;
h = imagesc(rand(s));%show some garbage
%prepare a circular mask
dummy = meshgrid(-s/2:s/2-1).^2;%squared distances from the center
mask = sqrt(dummy+dummy') < 20;%20 is the radius of your mask
%here you go, mask the image in a curved manner
set(h,'alphaData',mask);
экспортировать его как PNG будет делать эту работу.
поэтому в вашем случае вам нужно сделать свою собственную маску, это означает либо порог вашего растрового изображения, либо параметризовать пространство (как я сделал это с кругом выше).
У вас есть координаты кривой, по которой вы хотите обрезать? Если да, то в каком формате? –
Вам нужно найти объект, представляющий интерес, сделать двоичную маску и умножить изображение на маску. Читайте о поиске и заполнении границ. –
вы знаете, что он окажется в виде прямоугольника, потому что Matlab должен представлять соответствующие точки в каком-то двумерном массиве ... – bla