在Java中,如何在OpenCV Mat中表示两个元素向量?
我在看 返回值在Java中,如何在OpenCV Mat中表示两个元素向量?,java,opencv,image-processing,Java,Opencv,Image Processing,我在看 返回值行位于Mat数据类型中,描述如下: 线的输出向量。每行由两个元素表示 向量(ρ,θ)。rho是距坐标原点的距离 (0,0)(图像的左上角)。θ是线的旋转角度 以弧度为单位(0~垂直线,pi/2~水平线) 奇怪的是,这个描述匹配,但数据类型不:在C++中,可以使用 STD::向量行< /C> >。在C++中,返回的数据表示,给出了描述,是直接的,但是在java中没有。 那么,在Java中,两元素向量如何表示/存储在返回的Mat中呢?这是我刚才在2.4.8版中使用的一些代码matLin
行
位于Mat
数据类型中,描述如下:
线的输出向量。每行由两个元素表示
向量(ρ,θ)。rho是距坐标原点的距离
(0,0)(图像的左上角)。θ是线的旋转角度
以弧度为单位(0~垂直线,pi/2~水平线)
奇怪的是,这个描述匹配,<强>但数据类型不:在C++中,可以使用<代码> STD::向量行< /C> >。在C++中,返回的数据表示,给出了描述,是直接的,但是在java中没有。
那么,在Java中,两元素向量如何表示/存储在返回的Mat中呢?这是我刚才在2.4.8版中使用的一些代码<代码>matLines来自以下内容:
Imgproc.HoughLinesP(matOutline, matLines, 1, Math.PI / 180, houghThreshCurrent, houghMinLength, houghMaxGap);
Point[]points=新点[]{new Point(),new Point()};
对于(int x=0;x
谢谢!我其实不是那个需要帮助的人,让我们看看作者是怎么说的……我已经冒昧地重写了循环,以避免循环中不必要的内存分配;对于大型图片,这可能是一个真正的资源猪。
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];
//...
}