You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.6 KiB
38 lines
1.6 KiB
# 実験課題8
|
|
# 3.8 Webカメラ映像のキャプチャと表示
|
|
|
|
import cv2
|
|
|
|
# Webカメラのデバイスを初期化(引数の 0 は標準のカメラデバイスを指します)
|
|
cap = cv2.VideoCapture(0)
|
|
|
|
# カメラが正常に起動・接続できたかを確認
|
|
if not cap.isOpened():
|
|
print("カメラを開けませんでした。カメラの接続や権限を確認してください。")
|
|
else:
|
|
print("カメラ映像の表示を開始します。終了するには 'q' キーを押してください。")
|
|
|
|
# 映像は「連続した静止画(フレーム)」なので、無限ループで取得し続けます
|
|
while True:
|
|
# カメラから1フレーム(1枚の画像)を読み込む
|
|
# ret には取得成功の可否(True/False)、frame には画像データ(NumPy配列)が入ります
|
|
ret, frame = cap.read()
|
|
|
|
# 画像が正しく取得できなかった場合はループを終了
|
|
if not ret:
|
|
print("フレームを正常に取得できませんでした。")
|
|
break
|
|
|
|
# 取得したフレームを画面に表示
|
|
cv2.imshow('Webcam Capture', frame)
|
|
|
|
# 1ミリ秒だけキー入力を待機する
|
|
# もし入力されたキーが 'q' であれば、ループを抜けて終了処理へ進む
|
|
if cv2.waitKey(1) & 0xFF == ord('q'):
|
|
break
|
|
|
|
# --- 終了処理 ---
|
|
# カメラデバイスを解放(プログラムからの占有を解除)
|
|
cap.release()
|
|
# 全てのウィンドウを閉じる
|
|
cv2.destroyAllWindows() |