2

我写:

 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

然后我试图从sobel获取一个数组。但我很困惑如何从 Mat 中获取价值并放入 Array。

4

1 回答 1

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)

于 2013-09-27T08:33:20.967 回答