2.9 赤い矩形枠の描画
実験の目的
- 矩形枠を描画し、枠線の色を設定します。
機能要件
赤い矩形枠を描画します。
ハードウェアの準備
| No. | 名称 | 数量 | 備考 |
|---|---|---|---|
| 1 | RDK X5 | 1 | 組み込みメインボード(32GB メモリーカード付き)。上位機(PC 側)システムとして動作します。 |
| 2 | カードリーダー | 1 | システムイメージの書き込みに使用します。 |
| 3 | USB カメラ | 1 | 画像を取得します。 |
| 4 | 電源ケーブル | 1 | 電源供給用です。 |
| 5 | LAN ケーブル | 1 | ネットワーク接続用です。 |
回路接続

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

ソースコードのダウンロード
ソースコードファイル:09_opencv_draw_rectangle.rar
プログラムコード
完全なプロジェクトコードは(ソースコードファイル)をクリックしてダウンロードしてください。
"""
---------------------------------------------------------------
程序功能: 使用opencv打开USB摄像头,在实时显示的图像中画红色的矩形
---------------------------------------------------------------
"""
import cv2
import numpy as np
# ==================== 初始化摄像头 ====================
# 打开默认摄像头 (使用udev规则)
# "/dev/mycamera" 是通过udev规则创建的符号链接,指向固定的物理摄像头
cap = cv2.VideoCapture("/dev/mycamera")
# 检查摄像头是否成功打开
if not cap.isOpened():
print("错误:无法打开摄像头")
exit()
print("按 'q' 键退出")
# ==================== 主循环:实时采集并绘制 ====================
while True:
# 从摄像头读取一帧图像
# ret: 布尔值,True表示读取成功
# frame: 读取到的图像数据(numpy数组,BGR格式)
ret, frame = cap.read()
# 检查是否成功读取到图像
if not ret:
print("错误:无法获取帧")
break
# 获取图像的尺寸
# height: 图像高度(行数)
# width: 图像宽度(列数)
height, width = frame.shape[:2]
# ==================== 计算矩形位置 ====================
# 将图像宽度分成4等份,每份的宽度
# 例如 width=640,则 delta_width = 160
delta_width = width // 4
# 将图像高度分成4等份,每份的高度
# 例如 height=480,则 delta_height = 120
delta_height = height // 4
# ==================== 绘制矩形 ====================
# cv2.rectangle() 参数说明:
# frame: 要绘制的图像
# pt1: 矩形左上角坐标 (x1, y1) = (delta_width, delta_height)
# pt2: 矩形右下角坐标 (x2, y2) = (delta_width*3, delta_height*3)
# (0, 0, 255): 矩形颜色 (BGR格式) → 红色 (蓝色=0, 绿色=0, 红色=255)
# 10: 矩形边框线宽(像素)
cv2.rectangle(frame, (delta_width, delta_height),
(delta_width * 3, delta_height * 3),
(0, 0, 255), 10)
# ==================== 显示结果 ====================
cv2.imshow('Camera Feed', frame)
# ==================== 键盘控制 ====================
# 等待1毫秒,检测键盘输入
# 如果按下 'q' 键,则退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# ==================== 资源释放 ====================
# 释放摄像头设备
cap.release()
# 关闭所有OpenCV创建的窗口
cv2.destroyAllWindows()
操作手順
- ターミナルを開き、Python プログラムのディレクトリに移動してプログラムを実行します。以下のコマンドを入力してください。
python 09_opencv_draw_rectangle.py
実験結果
USB カメラを開き、リアルタイム映像の中央に赤い矩形枠を描画します。
参考結果:

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