トップページ人工知能,実世界DBOpenCV のプログラム例Windows でカメラ画像を枠なし表示(Python, OpenCV を使用)

Windows でカメラ画像を枠なし表示(Python, OpenCV を使用)

普通に表示すると、ウインドウに枠がつく. 枠を表示したくないときは、このページのプログラムを使用する.

前準備

Python のインストール,pip と setuptools の更新,Python 開発環境

Python の URL: http://www.python.org/

【Python, pip の使い方】

Python, pip は,次のコマンドで起動できる.

Python 開発環境のインストール】

Python 用 opencv-python 4.3 のインストール

Windows の場合

コマンドプロンプトで次のコマンドを実行

python -m pip install -U opencv-python

Ubuntu の場合

端末で次のコマンドを実行

sudo apt -y update
sudo apt -y install libopencv-dev python3-opencv
  • ラズベリーパイ の場合

    端末で次のコマンドを実行

    sudo apt -y update
    sudo apt -y install libopencv-dev python3-opencv python3-opencv-apps
    

    Windows でカメラ画像を枠なし表示(Python, OpenCV を使用)

    USB接続できるビデオカメラを準備し,パソコンに接続しておく.

    import cv2
    import numpy as np
    import win32gui
    import win32con
    
    x = 0
    y = 0
    width = 640
    height = 480
    
    cv2.namedWindow("camera")
    v = cv2.VideoCapture(0)
    a = win32gui.FindWindow(None,"camera")
    win32gui.SetWindowLong(a, win32con.GWL_STYLE, win32con.WS_POPUP)
    print(a)
    while(v.isOpened()):
        r, f = v.read()
        if ( r == False ):
            break
        cv2.imshow("camera", f)
        win32gui.SetWindowPos(a, win32con.HWND_TOPMOST, x, y, width, height, win32con.SWP_SHOWWINDOW)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    v.release()
    cv2.destroyAllWindows()
    

    ※ 止めたいとき,右上の「x」をクリックしない.画面の中をクリックしてから,「q」のキーを押して閉じる

    [image]

    拡大縮小、回転を行いたい場合

    import cv2
    import numpy as np
    import win32gui
    import win32con
    
    x = 0
    y = 0
    scale = 0.5
    
    cv2.namedWindow("camera")
    v = cv2.VideoCapture(0)
    a = win32gui.FindWindow(None,"camera")
    win32gui.SetWindowLong(a, win32con.GWL_STYLE, win32con.WS_POPUP)
    print(a)
    while(v.isOpened()):
        r, f = v.read()
        if ( r == False ):
            break
        f = cv2.rotate(f, cv2.ROTATE_90_COUNTERCLOCKWISE)
        height = f.shape[0]
        width = f.shape[1]
        f = cv2.resize(f , (int(width*scale), int(height*scale)))
        cv2.imshow("camera", f)
        win32gui.SetWindowPos(a, win32con.HWND_TOPMOST, x, y, width, height, win32con.SWP_SHOWWINDOW)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    v.release()
    cv2.destroyAllWindows()
    

    ※ 止めたいとき,右上の「x」をクリックしない.画面の中をクリックしてから,「q」のキーを押して閉じる