检查图像是不是有效(损坏)javaCV

Posted

技术标签:

【中文标题】检查图像是不是有效(损坏)javaCV【英文标题】:Check if an image is valid(corrupted) javaCV检查图像是否有效(损坏)javaCV 【发布时间】:2015-01-07 10:55:19 【问题描述】:

我有一个包含图像的目录和子目录列表。我正在使用 JavaCV 来读取所有图像并使用 cvShowImage 来显示这些图像。我正在使用 listFilesForFolder 函数读取文件。我的问题是这些文件夹中的某些图像无效(已损坏)。因此我收到 Opencv 异常错误:

OpenCV Error: Null pointer () in cvReleaseImage, file ..\..\..\..\opencv\modules\core\src\array.cpp, line 2983
Exception in thread "main" java.lang.RuntimeException: ..\..\..\..\opencv\modules\core\src\array.cpp:2983: error: (-27)  in function cvReleaseImage
at org.bytedeco.javacpp.opencv_core.cvReleaseImage(Native Method)

如果图像有效(已损坏),我如何检查我的代码以继续读取所有图像的 for 循环?我正在使用以下函数来读取图像:

public IplImage openImage(String name) 


    IplImage img = cvLoadImage(name);
    cvShowImage("hello", img);
    cvWaitKey();
    cvReleaseImage(img);
    return img;

当我运行程序时,我在 cvReleaseImage(img) 行中遇到了问题。

【问题讨论】:

【参考方案1】:

您必须检查图像是否为null

public IplImage openImage(String name) 

    IplImage img = cvLoadImage(name);
    if(img != null)
    
        cvShowImage("hello", img);
        cvWaitKey();
        cvReleaseImage(img);
    
    return img;

【讨论】:

我想在img有效的情况下返回IplImage图像。如何在不返回任何内容的情况下退出并继续主函数中的 for 循环?

以上是关于检查图像是不是有效(损坏)javaCV的主要内容,如果未能解决你的问题,请参考以下文章

我可以在保存之前检查下载的图像是不是损坏吗?

即使 url 有效,使用 imgur api 获取损坏的图像

有啥方法可以让 PHP 检测到损坏的图像?

如何检查文件是不是是有效的图像文件?

如何检查文件是不是是有效的图像文件?

CSS Sprites 在图像上显示损坏的图像图标,但悬停仍然有效