Python+OpenCV人行道盲道边缘侦测识别

news2024/9/20 22:03:07

程序示例精选

Python+OpenCV人行道盲道边缘侦测识别

如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!

前言

这篇博客针对<<Python+OpenCV人行道盲道边缘侦测识别>>编写代码,代码整洁,规则,易读。 学习与应用推荐首选。


文章目录

一、所需工具软件

二、使用步骤

        1. 引入库

        2. 代码实现

        3. 运行结果

三、在线协助

一、所需工具软件

1. PyCharm

2. Python, OpenCV

二、使用步骤

1.引入库

import cv2
import numpy as np

2. 代码实现

代码如下:

# 打开视频文件
cap = cv2.VideoCapture('mangdao1.mp4')

while cap.isOpened():
    ret, frame = cap.read()

    # 如果无法读取到帧,则退出循环
    if not ret:
        break

    # 将图像转换为HSV颜色空间
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)


    # 根据HSV范围创建掩膜
    mask = cv2.inRange(hsv, lower_yellow, upper_yellow)
    cv2.imshow('Filtered Image1', mask)
    mask = cv2.dilate(mask, kernel, iterations=5)

    # 寻找轮廓
    __,contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    filtered_mask = np.zeros_like(mask)
    for contour in contours:
       cv2.drawContours(filtered_mask, [contour], -1, 255, thickness=cv2.FILLED)

    # 检测白色区域的边缘线
    edges = cv2.Canny(filtered_mask, threshold1=30, threshold2=100)  # 调整阈值
    white_edges = cv2.bitwise_and(edges, edges, mask=filtered_mask)
    cv2.imshow('Filtered Image6', white_edges)
    mask = cv2.dilate(white_edges, kernel, iterations=20)
    cv2.imshow('Filtered Image7', mask)

    # 按下 'q' 键退出循环
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break


cap.release()
cv2.destroyAllWindows()

3. 运行结果

三、在线协助:

如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!
1)远程安装运行环境,代码调试
2)Qt, C++, Python入门指导
3)界面美化
4)软件制作

当前文章连接:Python+Qt桌面端与网页端人工客服沟通工具_alicema1111的博客-CSDN博客

博主推荐文章:python人脸识别统计人数qt窗体-CSDN博客

博主推荐文章:Python Yolov5火焰烟雾识别源码分享-CSDN博客

                         Python OpenCV识别行人入口进出人数统计_python识别人数-CSDN博客

个人博客主页:alicema1111的博客_CSDN博客-Python,C++,网页领域博主

博主所有文章点这里alicema1111的博客_CSDN博客-Python,C++,网页领域博主

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/736327.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 Jest 在 Visual Studio Code 中进行更好的单元测试

目录 前言&#xff1a; 使用 Jest 扩展显著改善测试流程 1.自动启动 Jest 测试 2. 显示单个失败/通过的测试用例 允许调试单元测试 在文件中显示代码覆盖率 结论 前言&#xff1a; Jest是一个流行的JavaScript测试框架&#xff0c;它提供了简洁、灵活和强大的工具来编写…

ChatGPT炒股:查询分析某个公募基金的持仓变化

如果很认同某个基金经理的投资理念&#xff0c;可以跟踪基金经理的持仓变化&#xff0c;可以获取一些投资的线索。手动操作也可以实现&#xff0c;但略微麻烦&#xff0c;如果利用ChatGPT写一个跟踪程序&#xff0c;就方便多了。 下面以汇丰晋信副总经理、投资总监、知名基金经…

深入理解java虚拟机精华总结:线程安全与锁优化

深入理解java虚拟机精华总结&#xff1a;线程安全与锁优化 线程安全Java语言中的线程安全不可变绝对线程安全相对线程安全线程兼容线程对立 线程安全的实现方法互斥同步非阻塞同步无同步方案 锁优化自旋锁与自适应自旋锁消除锁粗化轻量级锁偏向锁 线程安全 当多个线程同时访问…

MF30:VBA_清除Excel缓存

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

【云原生|Docker系列第1篇】什么?你竟然还不知道Docker?

欢迎来到Docker入门系列的第一篇博客&#xff01;在当今的应用开发和部署领域&#xff0c;Docker已经成为一项极具吸引力的关键技术。本篇博客将为您介绍Docker的基本概念和作用&#xff0c;并解释为什么它成为现代应用开发和部署的终极利器。无论您是开发人员、系统管理员还是…

Java小白的学习之路——day11(静态)

目录 一、java的内存分析 1.java的内存区域 二、静态static 静态属性 静态方法 类加载 什么是类加载&#xff1f; 什么是触发类加载&#xff1f; 一、java的内存分析 1.java的内存区域 java的内存区域有五个区域 i.堆区&#xff1a;存放new的对象、成员遍历、常量池&a…

Yolov5-Lite + Sort算法实现边缘目标跟踪

文章目录 前言项目结构Sort算法实现卡尔曼跟踪器工具类多目标跟踪器 整合 前言 昨天挖了个坑&#xff0c;那么今天的话把坑填上&#xff0c;只要是实现Sort算法和Yolov5-Lite的一个整合。当然先前的话&#xff0c;我们在Yolov3–Tiny的时候&#xff0c;也做了一个&#xff0c;…

Netty实战(一) netty入门之创建echo服务器

目录 一、理论知识1. 网络协议TCP/UDP2. netty简介3. 依赖4. netty核心类介绍 二、开发实战1. 服务端2. 客户端 demo源码参考 一、理论知识 1. 网络协议TCP/UDP TCP、UDP协议属于七层协议中传输层的协议&#xff0c;这两种主流协议的差异&#xff1a; TCP是一个面向连接的、…

ArcGIS Pro遥感影像分类:随机森林、支持向量机方法

本文介绍在ArcGIS Pro软件中&#xff0c;基于随机森林、支持向量机等多种算法&#xff0c;对遥感影像数据加以监督分类的具体方法。 在文章ArcGIS中ArcMap栅格遥感影像的监督分类&#xff08;https://blog.csdn.net/zhebushibiaoshifu/article/details/126905442&#xff09;中…

【已解决】Couldn‘t find a tree builder with the features you requested: lxml

这是一个常见于Python爬虫代码的报错。 报错代码&#xff1a; soup BeautifulSoup(r.text, xml) 报错原因&#xff1a; BeautifulSoup的解析方法之一&#xff0c;xml&#xff0c;需要安装好lxml库才行 解决办法&#xff1a; 安装 lxml 库即可。 pip install lxml 安装好…

HTML的Input(type)的属性都有哪些

&#x1f607;作者介绍&#xff1a;一个有梦想、有理想、有目标的&#xff0c;且渴望能够学有所成的追梦人。 &#x1f386;学习格言&#xff1a;不读书的人,思想就会停止。——狄德罗 ⛪️个人主页&#xff1a;进入博主主页 &#x1f33c;欢迎小伙伴们访问到博主的文章内容&am…

笨笨的刷题日记

关注我&#xff0c;带你一起学习&#xff0c;共同成长。 LeetCode 还记得三年前找实习的时候 leetCode 还是 1000 题左右&#xff0c;现在都飙到 3000 题了&#xff0c;还有前端狗专用的 JavaScript 系列。这个世界真实太疯狂了。 leetCode 部分习题参考答案 正在更新中 标号…

C++primer(第五版)第十五章(面向对象程序设计)

15.1 OOP:概述 面向对象程序设计(object-oriented programming)的核心思想是数据抽象,继承和动态绑定(个人认为应该是多态,但是书里原话是动态绑定,因此不太确定). 一开始,C只是C加上一些面向对象特性.C最初的名称C with Classes 也反映了这个血缘关系 …

摆动排序 II · Wiggle Sort II

链接&#xff1a; 题解&#xff1a; 1.先用partition函数&#xff0c;求得n/2的位置的排序 2.然后选取首尾指针&#xff08;奇数选择1和length-1&#xff0c;偶数选择为1和length-2&#xff09;&#xff0c;进行swap交换 3.每次首指针每次2&#xff0c;尾指针每次-2 九章算…

使用 Sa-Token 实现不同的登录模式:单地登录、多地登录、同端互斥登录

一、需求分析 如果你经常使用腾讯QQ&#xff0c;就会发现它的登录有如下特点&#xff1a;它可以手机电脑同时在线&#xff0c;但是不能在两个手机上同时登录一个账号。 同端互斥登录&#xff0c;指的就是&#xff1a;像腾讯QQ一样&#xff0c;在同一类型设备上只允许单地点登…

Spring:Bean生命周期

Bean 生命周期 生命周期 Bean 生命周期是 bean 对象从创建到销毁的整个过程。 简单的 Bean 生命周期的过程&#xff1a; 1.实例化&#xff08;调用构造方法对 bean 进行实例化&#xff09; 2.依赖注入&#xff08;调用 set 方法对 bean 进行赋值&#xff09; 3.初始化&#x…

IDEA使用教程 安装教程

16. Codota 插件 Codota 插件可以根据使用频率优先显示较常用的类和方法。然而&#xff0c;是否使用该插件取决于个人的偏好。有时工具只能作为参考&#xff0c;仍然需要依靠个人记忆来确保准确性。 17. 快速查看类和字段的注释 按下 F2 键可以快速查看某个类或字段的文档注…

编译运行Secure Value Recovery Service v2

下载项目 git clone https://github.com/signalapp/SecureValueRecovery2.git编译 make dockersh报错 修改Dockerfile ARG PROTOC_GEN_GO_GITREV6875c3d7242d1a3db910ce8a504f124cb840c23a RUN go env -w GOPROXYhttps://goproxy.cn,direct RUN go install google.golang.org/p…

阿里云轻量应用服务器和云服务器的区别

阿里云服务器ECS和轻量应用服务器有什么区别&#xff1f;云服务器ECS是明星级云服务器&#xff0c;轻量应用服务器可以理解为简化版的云服务器ECS&#xff0c;轻量适用于单机应用&#xff0c;云服务器ECS适用于集群类高可用高容灾应用&#xff0c;阿里云百科来详细说下阿里云轻…

MachineLearningWu_10_NeuralNetwork

x.1 课程目录 为了开始我们的学习&#xff0c;我们会先列出我们的课程目录&#xff0c;诸如以下&#xff0c; x.2 NN的发展 NN一开始是为了模仿人类大脑&#xff0c;但随着时间的演进&#xff0c;逐渐被使用在各种应用之中&#xff0c; 深度学习DL为何最近几年突飞猛进呢&…