202011-29 基于python的opencv图像处理实现对斑马线的检测示例 基本思路斑马线检测通过opencv图像处理来进行灰度值转换、高斯滤波去噪、阈值处理、腐蚀和膨胀后对图像进行轮廓检测,通过判断车辆和行人的位置,以及他们之间的距离信息,当车速到超过一定阈值时并且与行人距离较近时,则会被判定车辆为未礼让行人。结果示例实验流程先通过视频截取一张图片来进行测试,如果结果满意之后再嵌套到视频中,从而达到想要的效果。1.预处理(灰度值转换、高斯滤波去噪、阈值处理、腐蚀和膨胀)>根据自... 继续阅读 >
202011-29 OpenCV实现车牌定位(C++) 最近开始接触C++了,就拿一个OpenCV小项目来练练手。在车牌自动识别系统中,从汽车图像的获取到车牌字符处理是一个复杂的过程,本文就以一个简单的方法来处理车牌定位。我国的汽车牌照一般由七个字符和一个点组成,车牌字符的高度和宽度是固定的,分别为90mm和45mm,七个字符之间的距离也是固定的12mm,点分割符的直径是10mm。使用的图片是从百度上随便找的(侵删),展示一下原图和灰度图:#include<iostream>#include<ope... 继续阅读 >
202011-29 python 用opencv实现霍夫线变换 霍夫变换是一种检测任何形状的流行技术,可以检测形状,即使它被破坏或扭曲一点点.一条线可以表示成y=mx+c或参数形式,像ρ=xcosθ+ysinθ,其中ρ是从原点到直线的垂直距离,θ角是由这条垂线和水平轴以逆时针的方向形成的(这个方向取决于你如何表示坐标系统,这种表示法在OpenCV中使用)OpenCV中的Hough变换cv.HoughLines()第一个参数,输入图像应该是一个二值图像,因此在应用hough变换之前应用阈值或使用Canny边缘检测.第... 继续阅读 >
202011-29 使用OpenCV校准鱼眼镜头的方法 01.简介当我们使用的鱼眼镜头视角大于160°时,OpenCV中用于校准镜头“经典”方法的效果可能就不是和理想了。即使我们仔细遵循OpenCV文档中的步骤,也可能会得到下面这个奇奇怪怪的照片:如果小伙伴也遇到了类似情况,那么这篇文章可能会对大家有一定的帮助。从3.0版开始,OpenCV包含了cv2.fisheye可以很好地处理鱼眼镜头校准的软件包。但是,该模块没有针对读者的相关的教程。02.相机参数获取校准镜头其实只需要下面2个步骤。利... 继续阅读 >
202011-16 基于OpenCV的网络实时视频流传输的实现 很多小伙伴都不会在家里或者办公室安装网络摄像头或监视摄像头。但是有时,大家又希望能够随时随地观看视频直播。大多数人会选择使用IP摄像机(Internet协议摄像机)而不是CCTV(闭路电视),因为它们具有更高的分辨率并降低了布线成本。在本文中,我们将重点介绍IP摄像机。IP摄像机是一种数字 摄像机,可以通过IP网络接收控制数据并发送图像数据,并且不需要本地记录设备。大多数IP摄像机都是基于RTSP(实时流协议)的,因此... 继续阅读 >
202011-13 Python图像识别+KNN求解数独的实现 Python-opencv+KNN求解数独最近一直在玩数独,突发奇想实现图像识别求解数独,输入到输出平均需要0.5s。整体思路大概就是识别出图中数字生成list,然后求解。输入输出demo数独采用的是微软自带的Microsoftsudoku软件随便截取的图像,如下图所示:经过程序求解后,得到的结果如下图所示:程序具体流程程序整体流程如下图所示:读入图像后,根据求解轮廓信息找到数字所在位置,以及不包含数字的空白位置,提取数字信息通过KNN识别,... 继续阅读 >
202011-13 python 利用opencv实现图像网络传输 本代码主要实现的是利用网络传输图片,用在我的树莓派项目之上。该项目在PC上运行服务端,树莓派上运行客户端,两者连接到同一局域网中,修改代码中的IP地址,就可以实现将树莓派采集到的图像数据实时传输到PC端。先运行服务端代码,然后运行客户端代码即可。树莓派摄像头使用的是普通的USB摄像头,并且在树莓派上安装了opencv,在树莓派上安装opencv的过程可以参考https://www.pyimagesearch.com/2017/09/04/raspbian-stretch-ins... 继续阅读 >
202011-04 基于OpenCV的路面质量检测的实现 本期我们将展示一种对路面类型和质量进行分类的方法及其步骤。为了测试这种方法,我们使用了我们制作的RTK数据集。路面分类该数据集[1]包含用低成本相机拍摄的图像,以及新兴国家常见的场景,其中包含未铺砌的道路和坑洼。路面类型是有关人或自动驾驶车辆应如何驾驶的重要信息。除了乘客舒适度和车辆维护以外,它还涉及每个人的安全。我们可以通过[2]中的简单卷积神经网络(CNN)结构来实现。在这种方法中,我们对表面类型分类任务... 继续阅读 >
202011-03 Opencv常见图像格式Data Type及代码实例 cv::Mat图像格式(DataType)命名规则通用的参数命名格式为:CV_{元素比特数}{元素类型}C{通道数}1最常见的CV_8UC3就表示为3通道Unsigned8bits格式的矩阵8U:8bitunsignedC3:通道数为32有些图片存储格式是32位float,则对应的图像格式为:CV_32FC1,CV_32FC2,CV_32FC3等;3如果图片存储格式是64位double,则对应的图像格式为:CV_64FC1,CV_64FC2,CV_64FC3等。int值映射关系矩阵元素的数据类型也可用不同的i... 继续阅读 >
202011-03 使用CMake构建OpenCV项目过程解析 项目结构为了使整个项目更加条理,我们的文件夹采用如下组织方式:binbuildCMakeLists.txtsrc其中bin目录用于放编译生成的可执行文件,build目录用于cmake构建项目,src用于放源代码。OpenCV源文件下面是我们写的一个OpenCV示例代码:#include<opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>#include<opencv2/imgproc/imgproc.hpp>#include<iostream>usingnamespacestd;usingnamespacecv;intmain(intar... 继续阅读 >
202011-03 python利用opencv保存、播放视频 代码已上传至:https://gitee.com/tqbx/python-opencv/tree/master/Getting_started_videos目标学习读取视频,播放视频,保存视频。学习从相机中捕捉帧并展示。学习cv2.VideoCapture(),cv2.VideoWriter()的使用从相机中捕捉视频通过自带摄像头捕捉视频,并将其转化为灰度视频显示出来。基本步骤如下:1.首先创建一个VideoCapture对象,它的参数包含两种:设备索引,指定摄像机的编号。视频文件的名称。2.逐帧捕捉。3.释放捕... 继续阅读 >
202011-03 Python+OpenCV检测灯光亮点的实现方法 本篇博文分享一篇寻找图像中灯光亮点(图像中最亮点)的教程,例如,检测图像中五个灯光的亮点并标记,项目效果如下所示:第1步:导入并打开原图像,实现代码如下所示:#importthenecessarypackagesfromimutilsimportcontoursfromskimageimportmeasureimportnumpyasnpimportargparseimportimutilsimportcv2#constructtheargumentparseandparsetheargumentsap=argparse.ArgumentParser()ap.add_argument(... 继续阅读 >
202010-28 Python+OpenCV图像处理——图像二值化的实现 简介:图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。普通图像二值化代码如下:importcv2ascvimportnumpyasnp#全局阈值defthreshold_demo(image):gray=cv.cvtColor(image,cv.COLOR_RGB2GRAY)#把输入图像灰度化#直接阈值化是对输入的单通道矩阵逐像素进行阈值分割。ret,binary=cv.threshold(gray,0,255,cv.THRESH_BINARY|cv.THRESH_TRIANGLE)print... 继续阅读 >
202010-24 Python+OpenCV图像处理——实现轮廓发现 简介:轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓发现结果。代码如下:importcv2ascvimportnumpyasnpdefcontours_demo(image):dst=cv.GaussianBlur(image,(3,3),0)#高斯模糊去噪gray=cv.cvtColor(dst,cv.COLOR_RGB2GRAY)ret,binary=cv.threshold(gray,0,255,cv.THRESH_BINARY|cv.THRESH_OTSU)#用大律法、全局自适应阈值方法进行图像二值化cv.im... 继续阅读 >
202010-24 Python+OpenCV图像处理——实现直线检测 简介:1.霍夫变换(HoughTransform)霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。主要用来从图像中分离出具有某种相同特征的几何形状(如,直线,圆等)。最基本的霍夫变换是从黑白图像中检测直线(线段)。2.Hough变换的原理是将特定图形上的点变换到一组参数空间上,根据参数空间点的累计结果找到一个极大值对应的解,那么这个解就对应着要寻找的几何形状的参数(比如说直线,那么就... 继续阅读 >
202010-23 Python+OpenCV图像处理—— 色彩空间转换 一、色彩空间的转换代码如下:#色彩空间转换importcv2ascvdefcolor_space_demo(img):gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)#RGB转换为GRAY这里的GRAY是单通道的cv.imshow("gray",gray)hsv=cv.cvtColor(img,cv.COLOR_BGR2HSV)#RGB转换为HSVcv.imshow("hsv",hsv)yuv=cv.cvtColor(img,cv.COLOR_RGB2YUV)#RGB转换为YUVcv.imshow("yuv",yuv)Ycrcb=cv.cvtColor(img,cv.COLOR_RGB2YCrCb)#RGB... 继续阅读 >