2016-11-18 16 views
0

Я пытаюсь сохранить каждый прямоугольник в изображении как отдельный файл jpeg, чтобы иметь возможность обучать нейронную сеть. это как я рисую прямоугольник машин:Как отделить и сохранить часть изображения?

function hdl = BBox(img, samp) 

I = imread(img); 
hdl = imshow(img); 
hold on; 

s = size(samp,1); 

for i=1:s 

bbox = samp(i,:); 

X = [bbox(3)-(bbox(5)), bbox(3)-(bbox(5)), bbox(3)-(bbox(5))+2*bbox(5), bbox(3)-(bbox(5))+2*bbox(5), bbox(3)-(bbox(5))]; 
Y = [bbox(4)-(bbox(6)), bbox(4)-(bbox(6))+2*bbox(6), bbox(4)-(bbox(6))+2*bbox(6), bbox(4)-(bbox(6)), bbox(4)-(bbox(6))]; 

Cx = bbox(3); 
Cy = bbox(4); 

H = [X;Y;ones(1,5)]; %// points as 3D homogeneous coordinates 
Tc = [1 0 -Cx; 0 1 -Cy; 0 0 1]; %// translation as a matrix 
Tr = [cosd((-bbox(7))) -sind((-bbox(7))) 0; sind((-bbox(7))) cosd((-bbox(7))) 0; 0 0 1]; %// rotation 
Hr = inv(Tc) * Tr * Tc * H; %// all transformations as matrix products 

plot(Hr(1,:), Hr(2,:)); %// the rotated rect 
disp(Hr); 

end 

Я не думаю, что imcrop команда работает для повернутых прямоугольников.

Как сохранить каждый прямоугольник как другое изображение?

enter image description here

ответ

0

Я думаю, простой способ будет использовать extractRotatedPatch File Exchange Submission

rpatch = extractRotatedPatch(img, center, width, height, angle) 

Sidenote:

Хотя это не проблема Matlab, я просто хочу, чтобы дать вам головы что вам может понадобиться обучить его миллионам изображений, прежде чем машинное обучение начнет приносить достойные результаты.

+0

благодарим вас за функцию. о проблеме машинного обучения. Надеюсь, вы могли бы рассказать мне: нужно ли отдельно отделять каждое транспортное средство, чтобы создать глубокое изучение CNN, или это не обязательно? Я хочу обучить CNN для обнаружения транспортных средств на спутниковом изображении. –

+0

@HadiGhahremanNezhad Я думаю, что это определенно поможет. Просто поймите, что вы затем тренируете модель, чтобы узнать, является ли вырезанный прямоугольник транспортным средством. (Я полагаю, вы также вырезаете много других предметов?). Если ваша цель состоит в том, чтобы узнать, является ли «изображение транспортным средством», я не уверен, следует ли его вырезать, так как окружающая среда также может быть релевантной. –