javacv讀取圖片報錯org.opencv.imgcodecs.Imgcodecs.imread_1(Ljava/lang/String;)的解決方法以及opencv的dll文件下載

想使用java做圖像處理,對比下兩張圖片的相似度。查資料發現javacv可以使用,沒想到實際操作還是困難不少。

首先,pom依賴問題:

    關於maven配置問題,查看javacv的githud 網址 https://github.com/bytedeco/javacv,pom配置如下:

<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacv-platform</artifactId>
    <version>1.4.1</version>
  </dependency>

結果發現maven下載了半天依賴都下載不完,而且很多依賴可能都用不到。

    接着查資料,發現這篇博客 https://blog.csdn.net/qi531621028/article/details/80172934 不錯,但是發現配置中的

<classifier>${javacpp.platform.dependencies}</classifier>會引起報錯,果斷註釋掉了。

接着寫段簡單的代碼,運行下:

import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class ImageUtil {
public static void main(String[] args) {
    Mat mat = Imgcodecs.imread("C:/Users/hspcadmin/Desktop/chrome.png");
}

}

不出所料,果斷報錯。


接着查原因顯示是opencv的dll文件未加載問題,於是搜索下載dll文件,發現CSDN上的都需要C幣才能下載,可憐沒有C幣了。只能下載opencv安裝獲取dll文件。修改代碼如下,運行成功。

import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import com.tester.jmx.JmxGenerate;
public class ImageUtil {
public static void main(String[] args) {
System.load(JmxGenerate.COMMON_PATH + "opencv_java340-x64.dll");
Mat mat = Imgcodecs.imread("C:/Users/hspcadmin/Desktop/chrome.png");
}

}

注意使用System.load()而不是loadLibrary()

附上opencv的dll文件百度網盤下載鏈接,沒有C幣的同學也可以下載:

https://pan.baidu.com/s/1T7-g2TD1JdXzvugurEjNmA


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章