🎉

【YOLOv8】画像を180度回転する方法

2024/07/27に公開

結論

cv2.rotate() を使う。

https://note.nkmk.me/python-opencv-numpy-rotate-flip/

ライブラリー

以下のコマンドを実行してライブラリーをinstallする

pip install ultralytics opencv-python  

コード

main.py
import cv2  
from ultralytics import YOLO  
  
print("モデルのロードを開始します...")  
# YOLOv8モデルのロード  
try:  
    model = YOLO('yolov8n.pt')   
    print("モデルのロードに成功しました")  
except Exception as e:  
    print(f"モデルのロードに失敗しました: {e}")  
    exit()  
  
print("カメラをオープンします...")  
cap = cv2.VideoCapture(0)  
  
if not cap.isOpened():  
    print("カメラのオープンに失敗しました")  
    exit()  
else:  
    print("カメラが正常にオープンされました")  
  
while True:  
    ret, frame = cap.read()  
  
    if not ret:  
        print("フレームのキャプチャに失敗しました")  
        break  
  
    # 画像を180度回転  
    rotated_frame = cv2.rotate(frame, cv2.ROTATE_180)  
  
    # YOLOv8を使用してオブジェクト検出  
    results = model(rotated_frame)  
  
    # 検出結果の描画  
    annotated_frame = results[0].plot()  
  
    # 回転したフレームを表示  
    cv2.imshow('YOLOv8 Detection', annotated_frame)  
  
    # 'q' キーが押された場合、ループを終了  
    if cv2.waitKey(1) & 0xFF == ord('q'):  
        break  
  
# キャプチャを終了し、ウィンドウを閉じる  
cap.release()  
cv2.destroyAllWindows()  

ヘッドウォータース

Discussion