202104-07 基于OpenCV的直方图匹配的实现方法 如何为图像生成直方图,如何使直方图相等,最后如何将图像直方图修改为与其他直方图相似。01.什么是图像直方图?在开始定义直方图之前,为简单起见我们先使用灰度图像,稍后再解释彩色图像的处理过程。图像直方图表示图像的像素分布情况。换言之,图像直方图显示具有特定像素值的图像点数量。例如,假设正常图像的像素强度在0到255之间变化。为了生成其直方图,我们只需要计算像素值为0的像素数量,然后计算1并继续到255即可。在... 继续阅读 >
202104-07 python OpenCV学习笔记 图像翻转使用Python的一个包,imutils。使用下面的指令可以安装。pipinstallimutilsimutils包的Github地址:https://github.com/jrosebr1/imutilsCSDN镜像:https://codechina.csdn.net/mirrors/jrosebr1/imutils可以在上面这个地址里面学习更多的使用方式。importcv2importimutils'''imutils.rotate第一个参数是翻转的图像,第二个参数的翻转角度函数还提供翻转中心的设置,但默认就是中心翻转。'''vc=cv2.VideoCapture(0)i... 继续阅读 >
202104-07 python基于OpenCV模板匹配识别图片中的数字 前言本博客主要实现利用OpenCV的模板匹配识别图像中的数字,然后把识别出来的数字输出到txt文件中,如果识别失败则输出“读取失败”。操作环境:OpenCV-4.1.0Python3.8.1程序目标单个数字模板:(这些单个模板是我自己直接从图片上截取下来的)要处理的图片:终端输出:文本输出:思路讲解代码讲解首先定义两个会用到的函数第一个是显示图片的函数,这样的话在显示图片的时候就比较方便了defcv_show(name,img):cv2.ims... 继续阅读 >
202103-30 OpenCV如何去除图片中的阴影的实现 一、前言如果你自己打印过东西,应该有过这种经历。如果用自己拍的图片,在手机上看感觉还是清晰可见,但是一打印出来就是漆黑一片。比如下面这两张图片:因为左边的图片有大片阴影,所有打印出来的图片不堪入目(因为打印要3毛钱,所以第二张图片只是我用程序模拟的效果)。那有什么办法可以解决吗?答案是肯定的,今天我们就来探讨几个去除阴影的方法。二、如何去除阴影?首先为了方便处理,我们通常会对图片进行灰度转换(即将... 继续阅读 >
202103-29 Python OpenCV 基于图像边缘提取的轮廓发现函数 基础知识铺垫在图像中,轮廓可以简单的理解为连接具有相同颜色的所有连续点(边界)的曲线,轮廓可用于形状分析和对象检测、识别等领域。轮廓发现的原理:先通过阈值分割提取目标物体,再通过边缘检测提取目标物体轮廓。一个轮廓就是一系列的点(像素),这些点构成了一个有序的点集合。使用cv2.findContours函数可以用来检测图像的边缘。函数原型说明contours,hierarchy=cv2.findContours(image,mode,method[,contours[,... 继续阅读 >
202103-23 Python+Opencv实现数字识别的示例代码 一、什么是数字识别? 所谓的数字识别,就是使用算法自动识别出图片中的数字。具体的效果如下图所示:上图展示了算法的处理效果,算法能够自动的识别到LCD屏幕上面的数字,这在现实场景中具有很大的实际应用价值。下面我们将对它的实现细节进行详细解析。二、如何实现数字识别? 对于数字识别这个任务而言,它并不是一个新的研究方向,很久之前就有很多的学者们在关注这个问题,并提出了一些可行的解决... 继续阅读 >
202103-22 Opencv图像处理之详解掩膜mask 1.在OpenCV中我们经常会遇到一个名字:Mask(掩膜)。很多函数都使用到它,那么这个Mask到底什么呢?2.如果我们想要裁剪图像中任意形状的区域时,应该怎么办呢?答案是,使用掩膜(masking)。我们先看一下掩膜的基础。图像的位运算。图像基本运算图像的基本运算有很多种,比如两幅图像可以相加、相减、相乘、相除、位运算、平方根、对数、绝对值等;图像也可以放大、缩小、旋转,还可以截取其中的一部分作为ROI(感兴趣区域)进行操... 继续阅读 >
202103-19 opencv实现图像平移效果 本文实例为大家分享了opencv实现图像平移效果的具体代码,供大家参考,具体内容如下图像平移:按照指定方向和距离,移动到相应位置格式:cv.warpAffine(img,M,dsize)参数:实现代码:importnumpyasnpimportcv2ascvimportmatplotlib.pyplotasplt#中文显示配置plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False#用来正常显示负号#载入图片img0=cv.imread(... 继续阅读 >
202103-19 opencv实现图像旋转效果 本文实例为大家分享了opencv实现图像旋转效果的具体代码,供大家参考,具体内容如下图像旋转:在opencv中首先根据旋转角度和中心获取旋转矩阵,然后根据旋转矩阵进行变换参数:实现代码:importnumpyasnpimportcv2ascvimportmatplotlib.pyplotasplt#中文显示配置plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False#用来正常显示负号#载入图片img0=cv.i... 继续阅读 >
202103-19 opencv实现图像缩放效果 本文实例为大家分享了opencv实现图像缩放效果的具体代码,供大家参考,具体内容如下图像缩放:图像缩放即对图像的大小进行调整,即放大或者缩小cv2.resize(src,dsize,fx=0,fy=0,interpolation=cv2.INTER_LINEAR)参数:实现代码:importcv2ascvimportmatplotlib.pyplotasplt#中文显示配置plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False#用来正常显示负号#... 继续阅读 >
202103-17 python中的opencv和PIL(pillow)转化操作 opencv>pilimportcv2fromPILimportImageimg=cv2.imread("test.png")image=Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))pil>opencvimportcv2fromPILimportImageimage=Image.open("test.png")img=cv2.cvtColor(numpy.asarray(image),cv2.COLOR_RGB2BGR)补充:skimage与opencv图片格式的相互转换skimage是python的一个图像库,常常与matplotlib一起作为视频、图像类的基本库。而opencv作为非常流... 继续阅读 >
202103-16 解决使用OpenCV中的imread()内存报错问题 错误截图如下:类似报错的原因1.imread()中的路径参数有误a.相对路径:此项目文件夹下可写成imread(“1.jpg”);b.绝对路径:.例如imread(“C:\\Users\\Administrator\\Desktop\\picture\\1.jpg”);2.内存不足本人在使用imread()加载图片时,因为图片过大(小图片试过没问题),而且程序运行时是在x86环境下的,导致内存不足x86能够使用的内存比x6要少很多,所以把x86改成x64就可解决补充:关于在Opencv中使用Release、imread时候出... 继续阅读 >
202103-16 OpenCV+Python几何变换的实现示例 几何变换图像的几何变换是指将一幅图像映射到另一幅图像内。有缩放、翻转、仿射变换、透视、重映射等操作。1缩放使用cv2.resize()函数实现对图像的缩放,但要注意cv2.resize()函数内的dsize参数与原图像的行列属性是相反的,也就是:目标图像的行数是原始图像的列数,目标图像的列数是原始图像的行数。下面举例说明cv2.resize()函数的用法:importcv2img=cv2.imread('E:/python_opencv/tupian.jpg')rows,cols=img.shape[0:2]#... 继续阅读 >
202103-16 Opencv对象追踪的示例代码 1HSV上下限颜色的HSV上下限如下表:2追踪单个颜色importcv2ascvimportnumpyasnpcap=cv.VideoCapture(0)lower_color=np.array([0,43,46])upper_color=np.array([10,255,255])whilecap.isOpened():#读取帧_,frame=cap.read()#转换颜色空间BGR到HSVhsv=cv.cvtColor(frame,cv.COLOR_BGR2HSV)#设置HSV的阈值使得只取某色mask=cv.inRange(hsv,lower_color,upper_color)#将掩膜和图像... 继续阅读 >
202103-12 opencv函数threshold、adaptiveThreshold、Otsu二值化的实现 threshold:固定阈值二值化,ret,dst=cv2.threshold(src,thresh,maxval,type)src:输入图,只能输入单通道图像,通常来说为灰度图dst:输出图thresh:阈值maxval:当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值type:二值化操作的类型,包含以下5种类型:cv2.THRESH_BINARY;cv2.THRESH_BINARY_INV;cv2.THRESH_TRUNC;cv2.THRESH_TOZERO;cv2.THRESH_TOZERO_INV官方文档的示例代码:i... 继续阅读 >
202103-12 python opencv 找出图像中的最大轮廓并填充(生成mask) 本文主要介绍了pythonopencv找出图像中的最大轮廓并填充,分享给大家,具体如下:importcv2importnumpyasnpfromPILimportImagefromjoblibimportParallelfromjoblibimportdelayed#Parallel和delayed是为了使用多线程处理#使用前需要安装joblib:pipinstalljoblib#img_stack的shape为:num,h,w#是三维的图像,可以理解为是num张二维的图像组成#mask是用来保存最后的结果的mask=np.ones_like(img_stack... 继续阅读 >