JavaCV cvApproxPoly方法调用错误

时间:2013-04-09 13:07:11

标签: javacv

我在JavaCV工作,我试图检测由透视倾斜的矩形,并使用矩形的4个角将图像固定到右透视图。 我有这段代码:

CvSeq corners_seq = new CvSeq();
int count = 0;
for (int i = 0; i < table_lines.length; i++)
{
    for (int j = i + 1; j < table_lines.length; j++)
    {
        CvPoint pt = HelperClass.ComputeIntersection(table_lines[i][0],table_lines[i][1], table_lines[j][0],table_lines[j][1]);
        if (pt.x() >= 0 && pt.y() >= 0)
        {
             corners_seq.put(pt);
        }
    }
}
CvMemStorage corners_storage = cvCreateMemStorage(0);
CvSeq corners = cvApproxPoly(corners_seq, corners_seq.header_size(), corners_storage, CV_POLY_APPROX_DP, 8, 0);

在cvApproxPoly,我从本机方法中得到错误:

Exception in thread "main" java.lang.RuntimeException: ..\..\..\src\opencv\modules\imgproc\src\utils.cpp:54: error: (-5) Input array is not a valid matrix at com.googlecode.javacv.cpp.opencv_imgproc.cvApproxPoly(Native Method)

我做错了什么?据我了解,输入参数为Pointer到CvSeq

1 个答案:

答案 0 :(得分:1)

CvMemStorage storage = cvCreateMemStorage(0);

CvSeq cvSeq = cvCreateSeq(0,Loader.sizeof(CvContour.class),Loader.sizeof(CvSeq.class),storage);