2013-03-21 7 views
0

Можно ли обрезать изображение вдоль определенной кривой. напр. Я хочу вырезать изображение пальца из этого изображения, но я не хочу обрезать его по прямоугольнику. enter image description hereОбрезка изображения в matlab

+0

У вас есть координаты кривой, по которой вы хотите обрезать? Если да, то в каком формате? –

+1

Вам нужно найти объект, представляющий интерес, сделать двоичную маску и умножить изображение на маску. Читайте о поиске и заполнении границ. –

+3

вы знаете, что он окажется в виде прямоугольника, потому что Matlab должен представлять соответствующие точки в каком-то двумерном массиве ... – bla

ответ

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 будет делать эту работу.

поэтому в вашем случае вам нужно сделать свою собственную маску, это означает либо порог вашего растрового изображения, либо параметризовать пространство (как я сделал это с кругом выше).

Смежные вопросы