如何分离并保存图像的一部分?
How to separate and save a part of an image?
我正在尝试将图像中的每个矩形保存为单独的 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 命令不适用于旋转的矩形。
如何将每个矩形保存为不同的图像?
我想一个简单的方法是使用 extractRotatedPatch File Exchange Submission
rpatch = extractRotatedPatch(img, center, width, height, angle)
旁注:
虽然这不是 Matlab 问题,但我只是想提醒您,在机器学习开始给出不错的结果之前,您可能需要在数百万张图像上对其进行训练。
我正在尝试将图像中的每个矩形保存为单独的 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 命令不适用于旋转的矩形。
如何将每个矩形保存为不同的图像?
我想一个简单的方法是使用 extractRotatedPatch File Exchange Submission
rpatch = extractRotatedPatch(img, center, width, height, angle)
旁注:
虽然这不是 Matlab 问题,但我只是想提醒您,在机器学习开始给出不错的结果之前,您可能需要在数百万张图像上对其进行训练。