繁体   English   中英

JavaCV / OpenCV:cvLoadImage无法正常工作

[英]JavaCV/OpenCV: cvLoadImage not working

我安装了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加载图像并稍后将其IplImageIplImage

例如:

 BufferedImage img =  ImageIO.read(new File("C:\\img.jpg") );
 IplImage origImg = IplImage.createFrom(img);

这解决了我的问题: import static org.bytedeco.javacpp.opencv_imgcodecs.*;

您必须添加此import语句:
import static org.bytedeco.javacpp.opencv_imgcodecs.cvLoadImage; 这是必需的,以便可以在不使用类名的情况下使用静态方法cvLoadImage

你必须import com.googlecode.javacv.cpp.opencv_highgui.*;

使用javacv 0,9,您必须import static org.bytedeco.javacpp.opencv_highgui.*;

我得到了同样的错误,我导入了以下包,问题解决了。

import static com.googlecode.javacv.cpp.opencv_highgui.*;

这可能是旧的,但对于那些像我一样偶然发现这个问题的人来说,这就是我解决它的原因以及原因:

第一个OP的错误:线程“main”中的异常java.lang.RuntimeException:无法编译的源代码 - 错误的sym类型:javacv.demo.main中的cvLoadImage(demo.java:17)

这表示编译器找不到您尝试调用的cvLoadImage方法。

cvLoadImage是JavaCPP下的静态方法。 具体来说,它是opencv_imgcodecs类下的静态方法。

要解决此问题,必须首先指定opencv_imgcodecs类的导入。

这可以通过添加导入来完成:
import static org.bytedeco.javacpp.opencv_imgcodecs.cvLoadImage;

这反过来会导致opencv_imgcodecs类在其类中及其静态方法和其他函数中可用。

我希望这有帮助。

最近遇到了同样的问题。 如果你正在使用javacv-0.10(目前更新),请手动导入这个:

import static org.bytedeco.javacpp.opencv_highgui.*;

但该项目的JRE来源应高于1.5

在我的情况下,当刮刀处于调试模式时发生问题。 尝试以正常模式运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM