2016-09-09 20 views
0

私はPython 2.7でOpenCV 3.0.0を使用していて、簡単なものを試しています。OpenCV python vstackは幅を変更します

イメージを縦に積み重ねたいです。

この単純な例:

import cv2 
import numpy as np 

comb = np.vstack((row_0, row_1)) 
cv2.imwrite('foo.png', comb) 

が一貫row_0row_1より(ブラウザで)大幅に狭いfoo.pngを生成します。

詳細:私は、ブラウザでrow_0.pngを見れば

row_0.shape 
(1074, 785, 3) 

row_1.shape 
(1187, 785, 3) 

comb.shape 
(2261, 785, 3) 

、それはfoo.pngよりWAY広くなっています。

質問

どのように私は私のコードを変更することができますので、row_0.pngブラウザでfoo.pngと同じ幅でありますか?

答えて

0

np.vstack - 入力が少なくとも2d(ここでは3d)で、軸= 0(行)で結合されていることを確認します。私が起こって見るものだつまり

np.concatenate((row0, row1), axis=0) 

で - 2つの寸法は同じですが、最初は2つの入力の合計です:

(1074, 785, 3) 
+ 
(1187, 785, 3) 
= 
(2261, 785, 3) 

combが狭く見える場合、それはおそらくですスケーリング。 2番目のdimと1stの比率は小さくなっています。この方法で2つの配列を結合すると予想されます。そして次元を考えれば、それが唯一可能な方法です。

配列として表示されるcombは、より多くの行と同じ列数を持ちます。しかし、2261が画像の表示幅であれば、相対的な高さは小さくなります。

関連する問題