如何用Java中的OpenCV Mat表示双元素向量?

Ant*_*nio 5 java opencv image-processing

我正在查看Hough Transform的Opencv Java文档.

返回值linesMat数据类型描述为:

输出矢量线.每条线由两元素矢量(rho,theta)表示.rho是距坐标原点(0,0)(图像的左上角)的距离.theta是以弧度表示的线旋转角度(0~垂直线,pi/2~水平线).

奇怪的是,此描述与C++接口的描述相匹配,数据类型不符合:在C++中,您可以使用本教程中std::vector<cv::Vec2f> lines所述的a .在C++中,给定描述的返回数据表示很简单,但在Java中则不然.

那么,在Java中,如何在返回的Mat中表示/存储双元素向量?

med*_*loh 5

这是我前一段时间使用过的一些代码,我认为是版本2.4.8.matLines来自这个:

Imgproc.HoughLinesP(matOutline, matLines, 1, Math.PI / 180, houghThreshCurrent, houghMinLength, houghMaxGap);
Run Code Online (Sandbox Code Playgroud)

...

Point[] points = new Point[]{ new Point(), new Point() };
for (int x = 0; x < matLines.cols(); x++) {
   double[] vec = matLines.get(0, x);
   points[0].x = vec[0];
   points[0].y = vec[1];
   points[1].x = vec[2];
   points[1].y = vec[3];
   //...
}
Run Code Online (Sandbox Code Playgroud)