Python-OpenCV识别图片中黑线偏离图像中心值

2024-01-08 01:50

本文主要是介绍Python-OpenCV识别图片中黑线偏离图像中心值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、题目:

利用摄像头进行寻迹是常用的运动检测,如下图为小车跑道。请设计一个方案,能够检测出视野内(320*240)黑线偏离图像中心平均值(以中心为0,左为负值,右为正值,单位为像素)。(以某自定义静态图作为目标,如下)

 


二、本程序实现功能

本程序实现的功能:

如题


三、建议及注意事项

建议:

建议在虚拟环境里安装包依赖、运行程序

注意: 

本程序运行系统是Win10

Python解释器版本3.6.6。不得用高版本,否则,opencv报错

切记包版本不要更改,尤其是numpy,否则opencv报错

文末有程序运行过程的说明,仅供参考


四、文件夹目录 


五、源代码:

Check.py包依赖

文件名:requirements.txt

numpy==1.19.5
opencv-python==3.4.1.15

Check.py

import cv2
import numpy as npimg1 = cv2.imread("Img\img1.jpg")
gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)# 转化为灰度图
retval, dst = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU)#二值化
dst = cv2.dilate(dst, None, iterations=2)# 膨胀,白区域变大
color = dst[120]# 单看第120行的像素值(图片长320,高240。用240/2)
black_count = np.sum(color == 0)#第120行像素中黑色的像素点个数
black_index = np.where(color == 0)#第120行像素中黑色的像素点的索引值,
center_now = (black_index[0][black_count - 1] + black_index[0][0]) / 2 #打印(black_index)就明白black_index[0][0]是什么了#black_index[0][0]不就是第一个黑像素点的位置吗,假设5个黑像素点#black_index[0][5-1]不就是最后一个黑像素点的位置吗
direction = center_now - 160 #减去长的一半,得到据中心的距离。 假如求点(0,6)(0,8)到x=4的距离,不就是(6+8)/2吗
print(direction)
cv2.waitKey(0)
cv2.destroyAllWindows()


六、源代码运行过程说明

源代码运行过程:

首先对图像做二值化处理,即像素点要么是0,要么是255。然后就是找到图片中心那一行像素点,即图片高的一半,然后看看黑色像素点是从哪开始开始结束,记录黑像素点的起始索引值x,和黑像素点的个数i,那么最后一个黑色像素点是x+i。假设中心(长度的一半)是4。那么距离中心的距离是(x+(x+i))/2 - 4


这篇关于Python-OpenCV识别图片中黑线偏离图像中心值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/581945

相关文章

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e