[OpenCV] Chapter01-11 Obtaining frame stream properties
Obtaining frame stream properties
Source Code
package main
import (
"fmt"
"github.com/pkg/errors"
"gocv.io/x/gocv"
"log"
)
func main() {
videoPath := "../../data/drop.avi"
err := printCaptureProperties(videoPath)
if err != nil {
log.Panic("Could not print capture properties: " + videoPath)
}
cameraNo := 0
err = printCaptureProperties(cameraNo)
if err != nil {
log.Panic("Could not print capture properties: " + string(cameraNo))
}
}
func printCaptureProperties(param interface{}) error {
var capture *gocv.VideoCapture
var err error
switch param.(type) {
case int:
capture, err = gocv.VideoCaptureDevice(param.(int))
case string:
capture, err = gocv.VideoCaptureFile(param.(string))
default:
return errors.New(fmt.Sprintf("%v is not supported type(%T)", param, param))
}
if err != nil {
log.Panic("Can not find capture source")
return err
}
log.Println("--------------------")
log.Println("Frame count:", capture.Get(gocv.VideoCaptureFrameCount))
log.Println("Frame width:", capture.Get(gocv.VideoCaptureFrameWidth))
log.Println("Frame height:", capture.Get(gocv.VideoCaptureFrameHeight))
log.Println("Frame rate:", capture.Get(gocv.VideoCaptureFPS))
return nil
}
Execute Result
$ go run chapter01-11_obtaining_frame_stream_properties.go
2019/03/07 00:00:06 --------------------
2019/03/07 00:00:06 Frame count: 182
2019/03/07 00:00:06 Frame width: 256
2019/03/07 00:00:06 Frame height: 240
2019/03/07 00:00:06 Frame rate: 30
2019/03/07 00:00:06 --------------------
2019/03/07 00:00:06 Frame count: 0
2019/03/07 00:00:06 Frame width: 1280
2019/03/07 00:00:06 Frame height: 720
Comments
Post a Comment