Как мы можем получить индекс точек, которые находятся внутри многоугольника? - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть изображение, и я поворачиваю его с помощью функции imtransform. Вывод этой функции - изображение с черными участками в четырех углах изображения.Я хочу извлечь кадр и дескриптор этого, кроме черных частей в углу изображения, с помощью vl_dsift. Для этого я использую следующий код:

th = 50;
s = 0.8;
A = imread('cameraman.tif');
[H,W]= size(A);
T = [s*cosd(th), -s*sind(th), 0 ; s*sind(th), s*cosd(th) ,0; 0, 0 ,1];
B  =imtransform(A,maketform('projective',T'),'xdata',[-W/2 W/2],'ydata',[-H/2 
H/2],'udata',[-W/2 W/2],'vdata',[-H/2 H/2]);
P = [-W/2 ,W/2 W/2 ,-W/2; -H/2 ,-H/2 ,H/2, H/2; 1, 1, 1 ,1];
Pt = T*P;
Pt = Pt./repmat(Pt(3,:),3,1);
Pt = Pt(1:2,:);
opts = {'size', 8, 'step', 5, 'fast'}; 
[fb, db] = vl_dsift(single(B), opts{:});
in = inpolygon(fb(1,:),fb(2,:),Pt(1,:),Pt(2,:));

Можете ли вы помочь мне найти кадр и дескриптор, который онив многоугольнике?

...