2.4 画像を取得して中心位置を描画(中空円で表示)
実験の目的
- 映像の中心点を求め、リアルタイム映像の真ん中に赤い中空円を描画できるようになります。
機能要件
リアルタイム映像の真ん中に赤い中空円を描画します。
ハードウェアの準備
| No. | 名称 | 数量 | 備考 |
|---|---|---|---|
| 1 | RDK X5 | 1 | 組み込みメインボード(32GB メモリーカード付き)。上位機(PC 側)システムとして動作します。 |
| 2 | カードリーダー | 1 | システムイメージの書き込みに使用します。 |
| 3 | USB カメラ | 1 | 画像を取得します。 |
| 4 | 電源ケーブル | 1 | 電源供給用です。 |
| 5 | LAN ケーブル | 1 | ネットワーク接続用です。 |
回路接続

ソフトウェア設計
設計フローチャート

ソースコードのダウンロード
ソースコードファイル:04_opencv_draw_hollow_circle.rar
プログラムコード
完全なプロジェクトコードは(ソースコードファイル)をクリックしてダウンロードしてください。
"""
---------------------------------------------------------------
程序功能: 使用opencv打开USB摄像头,在实时显示的图像正中心画空心圆
---------------------------------------------------------------
"""
import cv2
# 打开默认摄像头 (使用udev规则)
cap = cv2.VideoCapture("/dev/mycamera") #使用udev设备符号链接访问
# 检查摄像头是否成功打开
if not cap.isOpened():
print("错误:无法打开摄像头")
exit()
print("按 'q' 键退出")
# 实时读取并显示画面
while True:
ret, frame = cap.read()
if not ret:
print("错误:无法获取帧")
break
# 获取图像的高和宽
height, width = frame.shape[:2]
center = (width // 2, height // 2)
# 在图片的中间位置画一个半径为10像素的红色空心圆
cv2.circle(frame, center, radius=10, color=(0, 0, 255), thickness=1)
# 显示画面
cv2.imshow('Camera Feed', frame)
# 按 'q' 键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
操作手順
- ターミナルを開き、Python プログラムのディレクトリに移動してプログラムを実行します。以下のコマンドを入力してください。
python 04_opencv_draw_hollow_circle.py
実験結果
カメラで映像を取得し、リアルタイム映像の真ん中に赤い中空円を描画します。
参考結果:

お問い合わせ
資料のダウンロード・技術サポートについては、HumansX株式会社までお問い合わせください。
ドキュメント