如何将Mat(OpenCV)保存到Array

时间:2013-09-27 05:55:34

标签: java arrays opencv

我写道:

 Mat sobel = new Mat();
 Imgproc.Sobel(threshold,sobel, sobel.depth(), 1, 0);
 Highgui.imwrite("Sobel.jpg", sobel); 
 sobel.create( sobel.height(),sobel.width(), CvType.CV_8UC(2));    
 System.out.println(sobel.dump());

 //display matrix

然后我试图从索贝尔那里得到一个阵列。但我很困惑如何从Mat获得价值并放入数组。

1 个答案:

答案 0 :(得分:3)

像canny或sobel这样的图像过滤器只是二值化/突出显示图像。

如果你想要的只是访问像素:

byte [] pixels = new byte[ sobel.height() * sobel.width() ];
sobel.get(0,0,pixels);

如果你想要一个点/轮廓列表,你必须使用http://docs.opencv.org/java/org/opencv/imgproc/Imgproc.html#findContours(org.opencv.core.Mat,%20java.util.List,%20org.opencv.core.Mat,%20int,%20int)