在Java中使用OpenCV實踐
前言
最近工作上有個項目,涉及到一些有關圖像的操作,正好得知有OpenCV這一個開源庫。
在網(wǎng)上查找了一些資料,發(fā)現(xiàn)OpenCV有很多妙用,例如人臉識別、車牌識別等,甚至有大佬能用它來做自動駕駛。感覺挺有意思的,小記一下。
一 、OpenCV
1.簡介
OpenCV (開源計算機視覺庫) 是一個開源的BSD許可庫,其中包含數(shù)百種計算機視覺算法。它為開發(fā)者提供了Java、C++和Python接口,支持Windows、Linux和Android。
OpenCV被廣泛應用于各種領域,例如安防監(jiān)控、智能駕駛、機器人視覺、虛擬現(xiàn)實等。
官網(wǎng)文檔地址:OpenCV: OpenCV Tutorials
參考教程:OpenCV官方文檔_w3cschool
2.下載與安裝
下載地址:Releases - OpenCV
根據(jù)自己需要,選擇版本以及對應的平臺,這里版本選4.10.0,平臺選Windows。

下載后是一個exe,雙擊安裝即可。

3.目錄說明
安裝完成后的目錄如下:

build為構(gòu)建后的文件,sources是OpenCV的源代碼,我們進入build:

因為我們是java開發(fā),所以進入java文件夾,其中有個opencv-4100.jar,這個是我們開發(fā)中需要用到的jar包。
x64與x86代表不同的系統(tǒng),我們是在x64系統(tǒng)中使用,所以選擇x64,打開文件夾后里面有一個dll文件,這也是我們開發(fā)中需要調(diào)用的庫文件。


二、在Java項目中使用
我使用的開發(fā)軟件是 IntelliJ IDEA,因此這里將展示在IDEA中集成OpenCV。
1.打開或新建一個項目
2.使用快捷鍵 Shift + Ctrl + Alt + S 打開項目設置,或鼠標右擊項目,選擇 “打開項目設置”

3.選擇 “模塊” → 選中項目 → “依賴” → “+(添加)” → “1.JAR或目錄...” → 找到下載的OpenCV-4100.jar → "確定"

4.找到剛剛添加進來的jar包,"右建" → "編輯" → "+(添加)" → 找到下載的opencv_java4100.dll → "確定"


以上步驟完成后,就可以開始編碼了。
需要注意的是,如果maven依賴有變更,OpenCV需要重新導入,目前我還沒發(fā)現(xiàn)解決方法,若有大佬能解決這個問題,懇請告知,小弟不勝感激!
三 、測試
1.測試代碼
這里運行一個生成灰度圖的測試代碼,測試是否成功導入OpenCV。
package org.example;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class OpenCV_test {
public static void main(String[] args) {
//加載 opencv_javaXX.dll
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//測試圖片地址
String imgPath = "path/path/xxxx.jpg";
//讀取圖片
Mat img = Imgcodecs.imread(imgPath);
//生成灰度圖
Mat gray = new Mat();
Imgproc.cvtColor(img,gray, Imgproc.COLOR_BGR2GRAY);
//保存圖片
Imgcodecs.imwrite("./result.png", gray);
}
}
2.測試結(jié)果

灰度圖

原圖
總結(jié)
至此,Java項目已成功導入OpenCV,聽說OpenCV還能結(jié)合AI模型一起使用,應該挺好玩的,后面有時間的話我也會去研究研究,玩一玩。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
使用java代碼實現(xiàn)一個月內(nèi)不再提醒,通用到期的問題
這篇文章主要介紹了使用java代碼實現(xiàn)一個月內(nèi)不再提醒,通用到期的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01

