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

相关文章

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

opencv 滚动条

参数介绍:createTrackbar( trackbarname , "hello" , &alpha_slider ,alpha_max ,  on_trackbar )  ;在标签中显示的文字(提示滑动条的用途) TrackbarName创建的滑动条要放置窗体的名字 “hello”滑动条的取值范围从 0 到 alpha_max (最小值只能为 zero).滑动后的值存放在