🎉
【YOLOv8】画像を180度回転する方法
結論
cv2.rotate() を使う。
ライブラリー
以下のコマンドを実行してライブラリーを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