gpt4 book ai didi

JavaCV : cvLoadImage returns null no matter what I pass it

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:41 25 4
gpt4 key购买 nike

我使用的是 OS X 10.7.1。我已经下载了最新的 JavaCV 二进制文件,并从当前的颠覆检查中构建了 OpenCV。 cvLoadImage() 函数返回 null,无论我传递给它什么。我已经验证我正在向它传递一个有效的 jpg 图像的有效路径。其他 JavaCV 函数似乎返回合理的值,但由于我无法加载图像,所以我无法真正检查。

我想我可能哪里有错误,但我不熟悉JavaCV如何报告错误,所以我无法检查。

编辑:我可以验证整个 JavaCV 安装是否有效且正常运行,因为如果我使用 Java 的 ImageIO 加载图像,它可以工作,我可以随后对加载的图像进行操作,并保存图像(再次,通过 ImageIO)。 SSCE 如下:

import static com.googlecode.javacv.cpp.opencv_core.*;
import static com.googlecode.javacv.cpp.opencv_imgproc.*;
import static com.googlecode.javacv.cpp.opencv_objdetect.*;
import static com.googlecode.javacv.cpp.opencv_highgui.*;

import java.io.IOException;
import javax.imageio.ImageIO;
import java.io.File;
import java.awt.image.BufferedImage;
import com.googlecode.javacv.cpp.*;
import com.googlecode.javacpp.Loader;

class ImgLoadTest {
public static void main(String[] args) {
//comment out EITHER the BufferedImage bit OR the cvLoadImage portion.

//works
BufferedImage img = ImageIO.read(new File(args[0]));
IplImage origImg = IplImage.createFrom(img);

//returns null
//IplImage origImg = cvLoadImage(args[0]);

System.out.println("origImg is" + origImg);

}
}

因为我可以通过 ImageIO 让它工作,所以我不再过分担心这个错误,但解决它可能对其他使用 JavaCV 的人有用。

最佳答案

OpenCV 只适用于 ASCII 文件名。如果路径中有 i18n 字符,它很可能会阻塞。此外,目前,JavaCV 将所有 String 对象映射到 UTF-8,而且 Mac OS X 似乎并没有默认使用 UTF-8。

因此,如果 i18n 对您的应用程序很重要,请继续使用 ImageIO...

关于JavaCV : cvLoadImage returns null no matter what I pass it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7590643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com