我写道:
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获得价值并放入数组。
答案 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)