실시간 영상처리

최원상·2023년 3월 2일
0
package main

import (
    "gocv.io/x/gocv"
)

func main() {
    // 웹캠으로부터 영상을 받아오기 위해 VideoCapture 객체 생성
    webcam, err := gocv.VideoCaptureDevice(0)
    if err != nil {
        panic(err)
    }
    defer webcam.Close()

    // 영상 크기 설정
    err = webcam.Set(gocv.VideoCaptureFrameWidth, 640)
    if err != nil {
        panic(err)
    }
    err = webcam.Set(gocv.VideoCaptureFrameHeight, 480)
    if err != nil {
        panic(err)
    }

    // 윈도우 생성
    window := gocv.NewWindow("Webcam")
    defer window.Close()

    // 프레임 반복문
    for {
        // 프레임 읽기
        img := gocv.NewMat()
        if ok := webcam.Read(&img); !ok {
            panic("cannot read device")
        }
        if img.Empty() {
            continue
        }

        // 윈도우에 프레임 출력
        window.IMShow(img)
        if window.WaitKey(1) >= 0 {
            break
        }

        // 메모리 해제
        img.Close()
    }
}
profile
한 줄로는 안되지

0개의 댓글