2017-01-05 9 views
1

私はthis tutorialに従っています。私はAndroidアプリケーションで使用したいと思います。コードを60行目に変換したので、OpenCV JavaでM = cv2.getPerspectiveTransform(rect, dst)の使い方を知りたいと思います。OpenCV python to java

dstnp array

dst = np.array([ 
    [0, 0], 
    [maxWidth - 1, 0], 
    [maxWidth - 1, maxHeight - 1], 
    [0, maxHeight - 1]], dtype = "float32") 

であると私は私のJavaコードで使用する必要がありますどのようなデータ型見当がつかない。

+0

['Mat'](http://docs.opencv.org/java/2.4.9/org/opencv/imgproc/Imgproc.html#getPerspectiveTransform(org.opencv.core.Mat、%20org.opencv。おそらく、コア。 –

+0

しかし、Matの寸法とタイプはどうすればよいですか? –

+0

4行、2列、その外観によって。これは、4つのコーナーのxy座標を表しています。 –

答えて

1

dtype = float32の4x1次元のnumpy配列が作成されています。上記のコードは、2次元(xおよびy)を有する4点に対応するために、4行1列と2チャンネルMatを作成

Mat dst = new Mat(4, 1, CvType.CV_32FC2); 

:これはまた、Javaで行うことができます。

+0

私はまだ少し混乱しています。 2次元(x、y)の場合、なぜ1列しか必要ないのですか?それは2ではありませんか? –

+0

基本的にここでは '4 x 1 x 2'の行列があり、4と1は数と列と行に由来し、2は' CV_32FC2'に由来します。したがって、4 x 1 x 2行列を定義するのと同じ2つのチャネルを持つ4 x 1行列を定義します – ZdaR