我正在尝试读取 C++ 代码中的图像
LOGD("Loading image '%s' ...\n", (*inFile).c_str());;
Mat img = imread(*inFile, CV_LOAD_IMAGE_GRAYSCALE);
CV_Assert(img.data != 0);
并得到以下输出:
09-25 17:08:24.798: D/IRISREC(12120): Loading image '/data/data/com.example.irisrec/files/input/osoba1.jpg' ...
09-25 17:08:24.798: E/cv::error()(12120): OpenCV Error: Assertion failed (img.data != 0) in int wahet_main(int, char**), file jni/wahet.cpp, line 4208
该文件存在。但奇怪的是,如果我尝试使用根文件浏览器预览图像,它只是黑色。我手动将文件复制到那里。
EDIT:
该代码在 Windows 下以 .png 和 .jpg 格式运行良好。我只是想将现有的用于虹膜识别的 C++ 项目移植到 Android。
imread()
确定文件的类型根据其内容不是通过文件扩展名。如果文件头已损坏,则该方法失败是有道理的。
您可以尝试以下一些操作:
Example:
Mat img = imread("/data/data/com.example.irisrec/files/input/osoba1.jpg", CV_LOAD_IMAGE_GRAYSCALE);
if (!img.data) {
// Print error message and quit
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)