Я пытаюсь сохранить каждый прямоугольник в изображении как отдельный файл 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 команда работает для повернутых прямоугольников.
Как сохранить каждый прямоугольник как другое изображение?
благодарим вас за функцию. о проблеме машинного обучения. Надеюсь, вы могли бы рассказать мне: нужно ли отдельно отделять каждое транспортное средство, чтобы создать глубокое изучение CNN, или это не обязательно? Я хочу обучить CNN для обнаружения транспортных средств на спутниковом изображении. –
@HadiGhahremanNezhad Я думаю, что это определенно поможет. Просто поймите, что вы затем тренируете модель, чтобы узнать, является ли вырезанный прямоугольник транспортным средством. (Я полагаю, вы также вырезаете много других предметов?). Если ваша цель состоит в том, чтобы узнать, является ли «изображение транспортным средством», я не уверен, следует ли его вырезать, так как окружающая среда также может быть релевантной. –