在利用OpenCV API进行Java编程时,会经常用到Mat这个类,它代表一个矩阵。Mat拥有丰富的方法,下面介绍两个我最近使用到的get和put方法。
public int get(int row, int col, byte[] data)get方法的功能是将Mat中的数据存放到数组中。
Mat frame = new Mat(new Size(640, 480), 16);//创建一个640*480,类型为16的矩阵,存放视频帧
capture.read(frame); //从视频中读入一帧
byte[] frameArray = new byte[((int) frame.total() * frame.channels())];
frame.get(0, 0, frameArray);//将视频帧存入字节数组
上面是一个get方法的实例。
public int put(int row, int col, byte[] data)put方法的功能是将数组中的数据存放到Mat中
Mat image = new Mat(new Size(640, 480), 16);
image.put(0, 0, tuple2._2());//Spark中存放字节数组的元组,相当于上面的frameArray
上面是一个put方法的实例。
更多的方法请参考OpenCV官网。
参考:
https://docs.opencv.org/java/2.4.2/org/opencv/core/Mat.html