树莓派基于opencv和picamera对视频流中圆的自动识别

本文主要的目的在于利用树莓派实现对与圆的识别,主要在于笔者在比赛过程中需要向桶中投入物品,那么笔者觉得可以简单的将桶看作一个圆,这样可以简单的实现对目标桶的识别

笔者这篇代码是基于上一篇博客达成的,即利用电脑摄像头实现对圆的识别,从而验证利用opencv库对圆识别的可行性。具体内容及代码参考笔者的另一篇博客

https://blog.csdn.net/2302_76520938/article/details/131800449?spm=1001.2014.3001.5501

以下即为树莓派端的python代码

import cv2
import numpy as np
import picamera
from picamera.array import PiRGBArray
import time


def detect_circles():
    # 初始化树莓派相机
    camera = picamera.PiCamera()
    camera.resolution = (640, 480)
    time.sleep(0.1)
    raw_capture = PiRGBArray(camera, size=(640, 480))

    # 循环捕获图像帧进行处理
    for frame in camera.capture_continuous(raw_capture, format="bgr", use_video_port=True):
        # 获取原始图像
        image = frame.array

        # 图像预处理
        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
        gray = cv2.medianBlur(gray, 5)
        edges = cv2.Canny(gray, 50, 150)

        # 圆形检测
        circles = cv2.HoughCircles(edges, cv2.HOUGH_GRADIENT,
                                   dp=1, minDist=50, param1=100, param2=30,
                                   minRadius=10, maxRadius=100)

        # 绘制检测到的圆形
        if circles is not None:
            circles = np.round(circles[0, :]).astype("int")
            for (x, y, r) in circles:
                cv2.circle(image, (x, y), r, (0, 255, 0), 4)

        # 显示图像
        cv2.imshow("Circles Detection", image)
        key = cv2.waitKey(1) & 0xFF

        # 清空缓存,准备下一次读取图像
        raw_capture.truncate(0)

        # 按下 'q' 键退出循环
        if key == ord("q"):
            break

    # 关闭窗口
    cv2.destroyAllWindows()


# 执行圆形检测
detect_circles()

读者需要先在树莓派端下载好对应的opencv,numpy,picamera等库,具体如何下载参照其他博主博客即可,已有许多同行大佬介绍过,本人不再赘述

如要像笔者一样实现对特定大小的圆的识别,请关注博主并在博主的主页中寻找对应题目的博客

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值