簡體   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