树莓派4b设定颜色阈值项目

想用树莓派4b+ccd相机做一个设定颜色阈值项目,用来区分红色和绿色。


import cv2
import numpy as np

cap = cv2.VideoCapture(0)
while(True):
    # 从视频流获取每一帧
    ret, frame = cap.read()    
    # 转换为 HSV 颜色空间
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)   
    # 设定颜色阈值
    lower_red = np.array([0, 50, 50])
    upper_red = np.array([10, 255, 255])
    lower_green = np.array([50, 50, 50])
    upper_green = np.array([70, 255, 255])        
    # 应用掩模
    mask1 = cv2.inRange(hsv, lower_red, upper_red)
    mask2 = cv2.inRange(hsv, lower_green, upper_green)
    # 获得红色的掩模部分
    red_part = cv2.bitwise_and(frame, frame, mask=mask1)
    # 获得绿色的掩模部分
    green_part = cv2.bitwise_and(frame, frame, mask=mask2)
    # 显示视频帧和颜色部分
    cv2.imshow('frame',frame)
    cv2.imshow('red part',red_part)
    cv2.imshow('green part',green_part)
    # 按下 q 键退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 当一切都完成后,释放捕捉
cap.release()
cv2.destroyAllWindows()
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7706112
  • 以下回答由chatgpt基于相关博客总结生成:

    针对您的问题,可以使用树莓派的GPIO口连接CCD相机,使用Python的OpenCV库来实现颜色识别和阈值设定功能。具体步骤如下:

    1.连接CCD相机到树莓派的GPIO口,可以参考树莓派官方文档或相机的使用指南。

    2.在树莓派上安装OpenCV库,可以通过以下命令进行安装:

    sudo apt-get install python-opencv
    

    3.编写Python程序,实现CCD相机的调用和颜色识别功能。可以先使用OpenCV库的VideoCapture函数打开摄像头,然后使用inRange函数对图像进行颜色空间转换和颜色筛选,最后输出识别结果。以下是一个简单的示例代码:

    import cv2
    
    camera = cv2.VideoCapture(0) #打开摄像头
    while True:
        ret, frame = camera.read() #读取一帧图像
        if not ret:
            break
        hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) #将BGR格式转为HSV格式
        mask = cv2.inRange(hsv, (50, 50, 50), (70, 255, 255)) #筛选出绿色区域
        cv2.imshow('Camera', mask) #显示结果
    
        if cv2.waitKey(1) & 0xFF == ord('q'): #按下q键退出程序
            break
    
    camera.release() #释放摄像头
    cv2.destroyAllWindows() #关闭窗口
    

    以上代码仅实现了对绿色区域的识别,需要根据实际需求调整参数和添加红色区域的识别。

    4.调整阈值和参数,优化识别效果。可以通过调整inRange函数的阈值和范围,以及使用其他颜色空间转换函数和滤波函数来提升识别效果。

    需要注意的是,颜色识别并不是一种十分精准可靠的方法,受光照、环境等因素的影响较大,因此需要进行实际测试和优化。