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) 

追記使用することです推測:これはMatlabの問題ではないですが、私はちょうどあなたの頭を放棄したい

をマシンリーニングがまともな結果を出す前に、数百万のイメージでトレーニングする必要があるかもしれません。

+0

この機能をご利用いただきありがとうございます。 machinelearningの問題について私はあなたが私に教えてくれることを願っています:深い学習CNNを作成するために、このように各車両を分けなければならないのか、それとも必要ないのですか?衛星画像で車両を検出するためにCNNを訓練したい。 –

+0

@HadiGhahremanNezhad私はそれが間違いなく助けになると思います。切り抜いた矩形が乗り物であるかどうかを認識するためにモデルを訓練していることに気付くだけです。 (私はあなたも他の多くのアイテムをカットすると思う?)。あなたの目標が「写真に車両が含まれているかどうか」を認識することが目的ならば、周囲を妥協する必要があるかどうかはわかりません。 –

関連する問題