opencv(Java)的矩阵创建与操作
(1)创建矩阵
OpenCV Java中矩阵就是一个类 Mat,和它扩展出来的MatOfDouble之类的类。通常创建一个矩阵对象的方法是:
Mat A = new Mat(3, 4, CvType.CV_64FC1);
或者分两步:
Mat A = new Mat();
A.create(3,4,CvType.CV_64FC1);
矩阵使用完毕不用了,要记得销毁:
A.release();
另外还有些特殊矩阵的创建方法,这个文档里倒是有,大家可以看看。这些方法一般是静态方法,可以通过类来调用。例如:
A = Mat.eye(3,3, CvType.CV_64FC1);
A = Mat.zero(3,3,CvType.CV_64FC1);
诸如MatOfDouble之类的矩阵,还支持将矩阵转换为List或者从List(array)转换成矩阵。所以可以直接这样创建矩阵:
MatOfDouble A = new MatOfDouble(1,2,3,4,5,6,7,8,9);
或者
MatOfDouble A = new MatOfDouble();
A.fromArray(1,2,3,4,5,6,7,8,9);
注意,这样得到的矩阵实际上是一个列向量,也就是9*1的矩阵。如果想得到一个3*3的矩阵,可以用reshape,
A.reshape(1,3);
reshape这个方法的参数是很坑爹的,我好长时间都以为参数是行和列,后来翻文档才发现&#x