java - OpenCV 错误 : Null array pointer Java

标签 java opencv nullpointerexception

我正在运行网络摄像头,试图实时检测对象,并且我正在运行此代码。它在 video.main(video.java:92) 处给我错误 - CvRect sq = cvBoundingRect(ptr, 0); 但我正在检查 if(ptr != null) 。我不明白为什么。

CvMemStorage storage = CvMemStorage.create();
CvSeq contours = new CvContour(null);          
noOfContors = cvFindContours(imgbin, storage, contours, Loader.sizeof(CvContour.class), CV_RETR_CCOMP, CV_CHAIN_APPROX_NONE, new CvPoint(0,0));


 for (ptr = contours;  ptr != null; ptr = ptr.h_next()) {     
    if(ptr != null){
         CvRect sq = cvBoundingRect(ptr, 0);
         if(sq.height()*sq.width() > minAreaa && sq.height()* sq.width() < maxAreaa){
            p1.x(sq.x());
            p2.x(sq.x()+sq.width());
            p1.y(sq.y());
            p2.y(sq.y()+sq.height());
            cvRectangle(img1, p1, p2, CV_RGB(255, 0, 0), 2, 8, 0);
        } 
    }
}

在命令窗口中:

 OpenCV Error: Null pointer (NULL array pointer is passed) in unknown function, file ..\..\..\src\opencv\modules\core\src\array.cpp, line 2382
Exception in thread "main" java.lang.RuntimeException: ..\..\..\src\opencv\modules\core\src\array.cpp:2382: error: (-27) NULL array pointer is passed

    at com.googlecode.javacv.cpp.opencv_imgproc.cvBoundingRect(Native Method)
    at video.main(video.java:92)

最佳答案

通过在 for 循环中添加一个附加条件解决了这个问题,但仍然不知道这是否是一种正确的处理方式:

CvSeq contours1 = new CvContour(null);
for (ptr = contours;  ptr != null && cvFindContours(imgbin, storage, contours1, Loader.sizeof(CvContour.class), CV_RETR_CCOMP, CV_CHAIN_APPROX_NONE, new CvPoint(0,0)) != 0; ptr = ptr.h_next()){ .....

}

关于java - OpenCV 错误 : Null array pointer Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20831351/

相关文章:

java - 安装 jexcelapi

image-processing - OpenCV 中椭圆拟合的度量

c++ - OpenCV 从正方形 vector 中提取图像区域

java,apache poi,空点错误

java - onclick 按钮出现错误(cardview、recyclerview)

java - 任务“app :transformClassesWithInstantRunForDebug”执行失败

java - 尝试制作 GUI,找不到显示的符号?

java - 运行 Axis2 Web 服务客户端在客户端和服务器端生成错误

java - 插入、包含、删除和按索引获取元素的时间常数的数据结构

opencv - 我如何在 OpenCV 中计算平均轮廓