HumansXドキュメントセンター 公式サイトへ ↗

2.12 画像を取得して固定領域をクロップ

実験の目的

  1. クロップ領域のサイズを指定し、カメラ画像を取得して結果を表示します。

機能要件

固定領域で画像をクロップして表示します。

ハードウェアの準備

No. 名称 数量 備考
1 RDK X5 1 組み込みメインボード(32GB メモリーカード付き)。上位機(PC 側)システムとして動作します。
2 カードリーダー 1 システムイメージの書き込みに使用します。
3 USB カメラ 1 画像を取得します。
4 電源ケーブル 1 電源供給用です。
5 LAN ケーブル 1 ネットワーク接続用です。

回路接続

ソフトウェア設計

設計フローチャート

ソースコードのダウンロード

ソースコードファイル:12_opencv_cut_img.rar

プログラムコード

完全なプロジェクトコードは(ソースコードファイル)をクリックしてダウンロードしてください。

"""
---------------------------------------------------------------
程序功能: 使用opencv打开USB摄像头,在实时显示的图像中,选择裁剪区域图片

---------------------------------------------------------------
"""

import cv2

# ==================== 初始化摄像头 ====================
# 打开默认摄像头(设备索引通常是 0)
# VideoCapture(0) 表示打开系统默认的USB摄像头
cap = cv2.VideoCapture(0)

# 检查摄像头是否成功打开
# isOpened() 返回 True 表示摄像头可用,False 表示打开失败
if not cap.isOpened():
    print("错误:无法打开摄像头")
    exit()  # 退出程序

print("按 'q' 键退出")

# ==================== 主循环:实时采集并显示 ====================
# 实时读取并显示画面
while True:
    # 从摄像头读取一帧图像
    # ret: 布尔值,True表示读取成功,False表示读取失败
    # frame: 读取到的图像数据(numpy数组,BGR色彩格式)
    ret, frame = cap.read()

    # 检查是否成功读取到图像
    if not ret:
        print("错误:无法获取帧")
        break  # 跳出循环

    # ==================== 显示原始画面 ====================
    # 在窗口中显示完整的摄像头画面
    # 'Camera Feed' 是窗口名称
    cv2.imshow('Camera Feed', frame)

    # ==================== 图像裁剪操作 ====================
    # 从原始图像中裁剪指定区域
    # 裁剪语法:frame[起始行:结束行, 起始列:结束列]
    # 
    # 这里的裁剪区域:
    # - 行范围:160 到 320(高度方向,y坐标)
    # - 列范围:213 到 426(宽度方向,x坐标)
    # 
    # 裁剪区域尺寸:
    # - 高度 = 320 - 160 = 160 像素
    # - 宽度 = 426 - 213 = 213 像素
    #
    # 注意:这些值是硬编码的,假设图像分辨率足够大(至少 426x320)
    cut_img = frame[160:320, 213:426]

    # 在新窗口中显示裁剪后的图片
    # 'cut_img' 是窗口名称
    cv2.imshow("cut_img", cut_img)

    # ==================== 键盘控制 ====================
    # 等待1毫秒,检测键盘输入
    # waitKey(1) 返回按键的ASCII码
    # & 0xFF 取低8位,确保兼容性
    # 如果按下 'q' 键,则退出循环
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# ==================== 资源释放 ====================
# 释放摄像头设备(关闭摄像头驱动)
cap.release()
# 关闭所有OpenCV创建的窗口
cv2.destroyAllWindows()

操作手順

  1. ターミナルを開き、Python プログラムのディレクトリに移動してプログラムを実行します。以下のコマンドを入力してください。
python  12_opencv_cut_img.py

実験結果

USB カメラを開き、リアルタイム映像の固定領域をクロップして、その結果を表示します。

お問い合わせ

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