使用OpenCV的Java无法读取PNG图像

时间:2017-07-08 03:02:20

标签: java opencv unicode png

已解决& WHY

图片路径包含Unicode字符,我不得不说它是一个错误。

原始帖子

我是OpenCV的新手,只是使用带有OpenCV 3.2.0,3.1.0和2.4.3的java来读取这个图像而没有任何成功,即没有宽度或高度可读,尽管我的目的是寻找哈里斯的角落,并使用其他图像没有这个问题。

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;
public class Test 
{

public static void main (String []args)
{
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

    Mat img_object = Highgui.imread("E:/ℤIMAGEℂ/ℤtestℂ.png");
    System.out.println(
            "img_object.width() = " + img_object.width() 
            + ",\n img_object.height() = " + img_object.height()
            + ",\n img_object.depth() = " + img_object.depth()
            + ",\n img_object.channels() = " + img_object.channels()
            + ",\n img_object.total() = " + img_object.total()
            + ",\n img_object.type() = " + img_object.type()

    );
    }
}

图片

enter image description here

错误

img_object.width() = 0,
img_object.height() = 0,
img_object.depth() = 0,
img_object.channels() = 1,
img_object.total() = 0,
img_object.type() = 0
libpng warning: Image width is zero in IHDR
libpng warning: Image height is zero in IHDR
libpng error: Invalid IHDR data
OpenCV Error: Assertion failed (code) in cv::imencode, file           ..\..\..\..\opencv\modules\highgui\src\loadsave.cpp, line 430
Exception in thread "main" CvException [org.opencv.core.CvException:    cv::Exception: ..\..\..\..\opencv\modules\highgui\src\loadsave.cpp:430: error:    (-215) code in function cv::imencode
]
at org.opencv.highgui.Highgui.imencode_1(Native Method)
at org.opencv.highgui.Highgui.imencode(Highgui.java:243)
at Imshow.imshow(Imshow.java:29)
at test.main(Test.java:21)

1 个答案:

答案 0 :(得分:0)

已解决& WHY

图片路径包含 Unicode字符

有人建议您解决问题,删除或回答问题。

如果您尝试从Unicode路径读取图像,则会发生错误,并且我没有看到相关解决方案,因此您可以阅读此内容。

OpenCV被遗忘了Unicode文件路径。这是OpenCV的问题,但我的问题。