ぼくだってブログ書くねん

意識向上を目指した意識高い系ブログです。本業はなんちゃって電気設計業務です。

Jetson TX2のカメラモジュールをPython+OpenCVで使う方法

内容

前提:
* Jetson TX2
* Jetpack 4.2.2
* OpenCV 3.3.1

OpenCVでJetson TX2のカメラ使おうと思ったら、また一苦労したので。。。
下記コードで使えるようになりました。

import sys
import cv2

def read_cam():
    cap = cv2.VideoCapture("nvarguscamerasrc ! video/x-raw(memory:NVMM), width=(int)1280, height=(int)720,format=(string)NV12, framerate=(fraction)24/1 ! nvvidconv flip-method=0 ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink")
    if cap.isOpened():
        cv2.namedWindow("demo", cv2.WINDOW_AUTOSIZE)
        while True:
            ret_val, img = cap.read();
            cv2.imshow('demo',img)
            cv2.waitKey(10)
    else:
        print("camera open failed")\

    cv2.destroyAllWindows()


if __name__ == '__main__':
    read_cam()

あと、なんか変なFaild↓でたので一行打って完了です。

Gtk-Message: 16:49:30.680: Failed to load module "canberra-gtk-module"
sudo apt install libcanberra-gtk-module libcanberra-gtk3-module

これでOK.

【参考】
https://devtalk.nvidia.com/default/topic/1049024/jetson-agx-xavier/what-is-the-defaulat-output-format-of-the-jetson-board-camera/post/5326267/#5326267 https://askubuntu.com/questions/342202/failed-to-load-module-canberra-gtk-module-but-already-installed]

最後に

カメラ使うのも一苦労。
フルサイズのLinuxなのは嬉しいけど、ちょっと癖が強いんじゃ。。。

以上