JavaCV / OpenCV:cvLoadImage无法正常工作
我安装了JavaCV / OpenCV库,并且在基本示例代码中遇到问题。
根据我看过的几个例子,这段代码应该加载一张图片:
IplImage image = cvLoadImage("C:img.jpg");
但是,当我运行时,我得到一个“无法找到符号”的错误。
由于这是我第一次使用它,所以我不确定我是否搞砸了安装。
根据最新的JavaCV自述,我确实有OpenCV的正确版本。 我还导入了所有的JavaCV jar文件。 据我所知,我也有正确设置所有路径。
任何人都知道问题是什么?
编辑:
完整代码:
import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
import java.io.File;
public class demo {
public static void main(String[] args)
{
IplImage image = cvLoadImage("C:img.jpg");
final CanvasFrame canvas = new CanvasFrame("Demo");
canvas.showImage(image);
canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}
}
尝试运行时出错:
线程“main”中的异常java.lang.RuntimeException:不可编译的源代码 - 错误的sym类型:javacv.demo.main处的cvLoadImage(demo.java:17)
Java结果:1
似乎它声称cvLoadImage不会将字符串作为参数。
走过来,我为你找到的是通过ImageIO加载图像,并稍后将其IplImage
给IplImage
例如:
BufferedImage img = ImageIO.read(new File("C:img.jpg") );
IplImage origImg = IplImage.createFrom(img);
这解决了我的问题: import static org.bytedeco.javacpp.opencv_imgcodecs.*;
你必须添加这个导入语句:
import static org.bytedeco.javacpp.opencv_imgcodecs.cvLoadImage;
这是必需的,以便可以在不使用类名的情况下使用静态方法cvLoadImage
。