首頁> Java> java教程> 主體

在Java中使用OpenCV從系統相機拍攝快照

王林
發布: 2023-08-28 11:09:10
轉載
660 人瀏覽過

在Java中使用OpenCV從系統相機拍攝快照

簡介

OpenCV(開源電腦視覺庫)是一個開源電腦視覺和機器學習軟體庫。它包含超過2500種最佳化演算法,廣泛應用於即時應用。

Java 透過 JavaCV 函式庫提供與 OpenCV 的綁定,讓 Java 開發人員在其應用程式中利用 OpenCV 的功能。此類應用程式之一是從網路攝影機擷取影像。

先決條件

要繼續操作,您需要具備以下條件 -

  • 您的系統上已安裝 OpenCV。

  • JavaCV,Java 中 OpenCV 的包裝器。

使用 OpenCV 擷取快照

要擷取快照,我們需要建立 VideoCapture 類別的實例,它代表視訊擷取裝置。然後我們可以使用 read 方法從視訊來源擷取幀。

範例

讓我們來看一個例子 -

import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.videoio.VideoCapture; import org.opencv.imgcodecs.Imgcodecs; public class Main { static { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); } public static void main(String[] args) { // Create a VideoCapture object VideoCapture camera = new VideoCapture(0); // Check if camera opened successfully if(!camera.isOpened()){ System.out.println("Error: Camera not accessible"); return; } // Capture a new frame Mat frame = new Mat(); camera.read(frame); // Save the frame as an image Imgcodecs.imwrite("snapshot.png", frame); // Release the camera camera.release(); } }
登入後複製

說明

在上面的程式碼中,我們先載入OpenCV函式庫。

然後我們為預設攝影機(索引 0)建立一個 VideoCapture 物件。如果您有多個攝影機並希望使用不同的鏡頭,則可以在建立 VideoCapture 物件時指定其索引。

我們使用 isOpened 方法檢查相機是否成功開啟。如果相機無法訪問,我們會列印錯誤訊息並從 main 方法返回。

接下來,我們使用 read 方法從相機捕捉一幀並將其儲存在 Mat 物件中。 Mat(Matrix的縮寫)是OpenCV中的主要影像結構,用於儲存像素資料。

我們使用 Imgcodecs 類別中的 imwrite 方法將捕獲的幀保存為圖像,並將其命名為「snapshot.png」。

最後,我們使用release方法釋放相機,以釋放資源。

當您執行此程式時,它將從網路攝影機擷取單個畫面並將其儲存為專案目錄中的「snapshot.png」。

結論

使用 OpenCV 從 Java 中的網路攝影機擷取影像是一個簡單的過程,它為更複雜的應用程式(例如人臉辨識、運動偵測等)提供了大量機會。了解如何使用 Java 中的 OpenCV 函式庫為深入研究電腦視覺和影像處理奠定了堅實的基礎。

以上是在Java中使用OpenCV從系統相機拍攝快照的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!