OpenCV on Raspberry Pi - Using Java(5)- 使用 OpenCV 拍攝照片(USB Webcam) by Michael | CodeData
top

OpenCV on Raspberry Pi - Using Java(5)- 使用 OpenCV 拍攝照片(USB Webcam)

分享:

OpenCV on Raspberry Pi – Using Java(4)- 在 Raspberry Pi 安裝與測試 OpenCV << 前情

準備工作

  • 個人電腦
    • 已經安裝好OpenCV
    • 已經安裝與設定好NetBeans本地與遠端開發環境
  • RASPBERRY PI 3 MODEL B
    • 已經安裝好OpenCV
    • 可以在個人電腦透過SSH連線到Raspberry Pi

現在準備實作與測試使用OpenCV拍攝照片,個人電腦需要內建或連接的Webcam,Raspberry Pi可以選擇USB Webcam或Camera module:

使用 OpenCV VideoCapture API

這個階段先在個人電腦執行拍攝與儲存照片的測試。在NetBeans建立一個Java應用程式專案,依照之前的說明設定好專案需要的OpenCV類別庫與執行參數。參考下面的內容完成主程式類別:

package net.macdidi5.opencv;

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.videoio.VideoCapture;

public class CameraDemo01 {

    static {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    }

    public static void main(String[] args) {
        VideoCapture camera = new VideoCapture(0);
        delay(500);

        if(!camera.isOpened()){
            System.out.println("Camera is NOT opened");
        }
        else {
            System.out.println("Camera is opened");
        }

        Mat frame = new Mat();
        camera.read(frame);

        Imgcodecs.imwrite("CameraDemo01.png", frame);

        System.out.println("Take picture");
    }

    private static void delay(long ms) {
        try {
            Thread.sleep(ms);
        }
        catch (InterruptedException e) {
            System.out.println(e);
        }
    }

}

執行應用程式,拍攝的照片儲存在應用程式資料夾,在NetBeans選擇「Files」標籤,展開應用程式專案目錄,就可以開啟與檢視拍攝的照片:

OpenCVJava_05_001

在 Raspberry Pi 使用 USB Webcam

Raspberry Pi的RASBIAN作業系統支援USB Webcam,現在先檢查你的USB Webcam是否支援。在Raspberry Pi連接USB Webcam,在連線到Raspberry Pi的視窗執行下面的指令:

lsusb

如果RASBIAN作業系統支援你的USB Webcam,在顯示的訊息中就可以找到你的USB Webcam型號與資訊(下面訊息的第一行):

Bus 001 Device 004: ID 046d:081b Logitech, Inc. Webcam C310
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  

為剛才建立的專案執行Raspberry Pi遠端執行設定,包含遠端執行與VM Options:

OpenCVJava_05_002

執行應用程式專案,應用程式把拍攝的照片儲存在下面的目錄:

~/NetBeansProjects/應用程式專案名稱/

傳輸檔案

在Raspberry Pi與你工作的個人電腦之間,經常需要互相傳送與接收檔案。例如在個人電腦下載或開發的檔案,就需要傳送到Raspberry Pi中使用。Raspberry Pi在執行一些應用程式後產生的檔案,例如照片或紀錄檔,也需要傳送到個人電腦使用。

在兩台電腦與裝置之間傳輸檔案有很多作法,比較方便與安全的作法是透過SSH連線傳輸檔案。Windows作業系統沒有內建SSH傳輸檔案的工具程式,不過在提供PuTTY應用程式的網站,也提供一個可以執行SSH傳輸檔案的工具程式「PSCP」。

在個人電腦開啟瀏覽器,輸入下載的網址http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html,找到「Binaries」的「For Windows on Intel x86」,選擇「pscp.exe」的下載連結,儲存下載的檔案:

OpenCVJava_05_003

啟動命令提示字元,切換到儲存pscp.exe檔案的資料夾:

cd 儲存pscp.exe檔案的資料夾

參考下列的資訊,執行傳輸檔案的指令:

  • 「192.168.1.101」替換為你的Raspberry Pi IP位址
  • 「應用程式專案名稱」替換為NetBeans的專案名稱

    pscp pi@192.168.1.101:/home/pi/NetBeansProjects/應用程式專案名稱/CameraDemo01.png CameraDemo01.png

Mac OS使用內建的「scp」就可以執行傳輸檔案的工作:

scp pi@192.168.1.101:/home/pi/NetBeansProjects/應用程式專案名稱/CameraDemo01.png CameraDemo01.png

後續 >> OpenCV on Raspberry Pi – Using Java(6)- 使用 OpenCV 拍攝照片(Camera Module)

分享:
按讚!加入 CodeData Facebook 粉絲群

留言

留言請先。還沒帳號註冊也可以使用FacebookGoogle+登錄留言

關於作者

張益裕。目前的工作是講師與作者,專長是教育訓練課程規劃、教材編製與課程推廣,技術書籍與專欄寫作。涵蓋的領域有OOAD、Java程式設計、JavaFX、Java Embedded、Android與SQL。已出版電子書Google Play圖書Pubu

熱門論壇文章

熱門技術文章