2021
08-26
08-26
Python-OpenCV实现图像缺陷检测的实例
目录1.实现代码2.运行结果在JupyterNotebook上使用Python+opencv实现如下图像缺陷检测。关于opencv库的安装可以参考:Python下opencv库的安装过程与一些问题汇总。1.实现代码importcv2importnumpyfromPILimportImage,ImageDraw,ImageFont#用于给图片添加中文字符defImgText_CN(img,text,left,top,textColor=(0,255,0),textSize=20):if(isinstance(img,numpy.ndarray)):#判断是否为OpenCV图片类型i...
继续阅读 >
在JupyterNotebook上使用Python+opencv实现如下简单车牌字符切割。关于opencv库的安装可以参考:Python下opencv库的安装过程与一些问题汇总。1.实现代码importcv2importnumpyasnpimportmatplotlib.pyplotaspltfromPILimportImage#读取原图片image1=cv2.imread("123456.jpg")cv2.imshow("image1",image1)#灰度化处理image1_1=cv2.cvtColor(image1,cv2.COLOR_BGR2GRAY)cv2.imshow("image1_1",image1_1)#图像反色h,w=i...
目录背景介绍基本原理具体实现寻找相似点图片拼接Reference背景介绍图片的全景拼接如今已不再稀奇,现在的智能摄像机和手机摄像头基本都带有图片自动全景拼接的功能,但是一般都会要求拍摄者保持设备的平稳以及单方向的移动取景以实现较好的拼接结果。这是因为拼接的图片之间必须要有相似的区域以保证拼接结果的准确性和完整性。本文主要简单描述如何用Python和OpenCV库实现两张图片的自动拼合,首先简单介绍一下两张图片拼接...
目录目标检测概况目标检测是?目标检测算法?yolov3模型简介性能介绍架构介绍opencv-python实现whyopencv?正文因为最近的任务有用到目标检测,所以昨天晚上、今天上午搞了一下,快速地了解了目标检测这一任务,并且实现了使用opencv进行目标检测。网上资料挺乱的,感觉在搜资源上浪费了我不少时间,所以我写这篇博客,把我这段时间了解到的东西整理起来,供有缘的读者参考学习。目标检测概况目标检测是?目标检测,粗略来说就...
目录什么是形态学腐蚀膨胀什么是形态学要了解腐蚀之前,我们需要了解一个概念:形态学。形态学,又名数学形态学(MathematicalMorphology),是图像处理过程中一个非常重要的研究方向。形态学主要从图像内提取分量信息,该分量信息通常对于表达和描绘图像的形状具有重要的意义,通常是图像理解时所使用的最本质的形状特征。例如,在识别手写数字时,能够通过形态学运算得到其骨架信息,在具体的识别时,仅针对其骨架进行运算即可...
目录通用形态学函数开运算闭运算形态学梯度运算顶帽运算黑帽运算结构元函数通用形态学函数上篇博文,我们介绍了形态学的基础腐蚀与膨胀操作,而将腐蚀与膨胀结合起来进行组合,我们就能实现开运算,闭运算等复杂的形态学运算。在OpenCV中,它给我们提供的通用形态学函数为cv2.morphologyEx(),其完整定义如下:defmorphologyEx(src,op,kernel,dst=None,anchor=None,iterations=None,borderType=None,borderValue=None):这...
目录图像梯度Sobel滤波器图像梯度图像梯度计算的是图像变化的速度。对于图像的边缘部分,其灰度值变化较大,梯度值也较大;相反,对于图像中比较平滑的部分,其灰度值变化较小,相应的梯度值也较小。一般情况下,图像的梯度计算是图像的边缘信息。其实梯度就是导数,但是图像梯度一般通过计算像素值的差来得到梯度的近似值,也可以说是近似导数。该导数可以用微积分来表示。在微积分中,一维函数的一阶微分的基本定义是这样的:而...
图像分割是将图像分割成多个不同区域(或片段)的过程。目标是将图像的表示变成更容易和更有意义的图像。在这篇博客中,我们将看到一种图像分割方法,即K-MeansClustering。K-Means聚类是一种无监督机器学习算法,旨在将N个观测值划分为K个聚类,其中每个观测值都属于具有最近均值的聚类。集群是指由于某些相似性而聚合在一起的数据点的集合。对于图像分割,这里的簇是不同的图像颜色。我们使用的环境是pipinstallopencv-pyt...
目录怀旧滤镜实现原理实现怀旧滤镜连环画滤镜原理实现连环画滤镜熔铸算法冰冻算法怀旧滤镜实现原理不管是荣耀华为手机还是其他的手机,我们都可以找到相机中的怀旧效果,这是手机中常用的一种滤镜效果。怀旧风格的设计主要是在图像的颜色空间进行处理。以BGR为例,对B、G、R这3个通道的颜色数值进行处理,让图像有一种泛黄的怀旧效果。设计的转换公式如下:B=0.272r+0.534g+0.131*bG=0.349r+0.686g+0.168*bR=0.393r+0.769g+0.189*b...
目录前言宽高比ExtendSolidity等效直径方向掩摸和像素点最大值,最小值以及它们的位置平均颜色及平均灰度极点前言轮廓自身的一些属性特征及轮廓所包围对象的特征对于描述图像具有重要意义。本篇博文将介绍几个轮廓自身的属性特征及轮廓包围对象的特征。宽高比在轮廓中,我们可以通过宽高比来描述轮廓,例如矩形的轮廓宽高比为:宽高比=宽度/高度下面,我们来计算矩形轮廓的宽高比,代码如下:importcv2img=cv2.imread("26_1.jpg...
前言在前一篇的博文中,我们详细讲解了傅里叶变换的原理以及使用Numpy库实现傅里叶变换。但是其实OpenCV有直接实现傅里叶变换的函数。在OpenCV中,我们通过cv2.dft()来实现傅里叶变换,使用cv2.idft()来实现逆傅里叶变换。两个函数的定义如下:cv2.dft(原始图像,转换标识)这里的原始图像必须是np.float32格式。所以,我们首先需要使用cv2.float32()函数将图像转换。而转换标识的值通常为cv2.DFT_COMPLEX_OUTPUT,用来输出一个复数...
目录油画的实现原理实现油画效果水彩效果油画的实现原理油画简单的理解是带有艺术感的图像,色彩相对于原图要更加鲜艳,但却是失真的。而且对于喜欢欣赏艺术的读者,肯定或多或少关注过油画,油画并不细腻,而且小部分因为色块的堆积非常模糊。所以,我们实现油画的原理是:逐行对图像进行处理,使周围相邻距离的像素进行打乱。至于打乱的算法,你可以随机设计。不过,需要注意的是在处理到图像边缘时,比如左下角最后一个像素,那...
目录什么是图像平滑处理均值滤波方框滤波高斯滤波中值滤波双边滤波2D卷积什么是图像平滑处理在尽量保留图像原有信息的情况下,过滤掉图像内部的噪声,这一过程我们称之为图像的平滑处理,所得到的图像称为平滑图像。那么什么是图像的噪声呢?图像的噪声就是图像中与周围像素点差异较大的像素点。噪声的处理就是将其更改为临近像素点的近似值,使图像更平滑。图像平滑处理的噪声取值的方式有以下6种:(1)均值滤波(2)方框滤波(3...
目录什么是模板匹配模板匹配函数实现模板匹配什么是模板匹配模板匹配是指在当前图像A内寻找与图像B最相似的部分,可以理解找茬,但是这里是找出一样的信息。一般我们将图像A称为输入图像,将图像B称为模板图像。模板匹配的原理就是将模板B图像在图像A上滑动遍历,找出与其匹配的部分。模板匹配函数在OpenCV中,它给我们提供了cv2.matchTemplate()函数来完成模板匹配。其函数的完整定义如下:defmatchTemplate(image,templ,metho...
目录前言绘制椭圆的矩形边界最小包围矩形框最小包围圆形框最优拟合椭圆最优拟合直线最小外包三角形逼近多边形前言什么是轮廓?轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。为了更加准确,要使用二值化图像。在寻找轮廓之前,要进行阈值化处理或者Canny边界检测。查找轮廓的函数会修改原始图像。如果你在找到轮廓之后还想使用原始图...
目录前言获取凸包角点凸缺陷简单例子手势图片前言逼近多边形是某个图像轮廓的高度近似,而凸包的提出是为了简化逼近多边形的。其实,凸包跟逼近多边形很像,只不过它是物体最外层的“凸”多边形。简单的概括,凸包是指完全包含原有轮廓,并且仅由轮廓上的点所构成的多边形。凸包的特点是每一处都是凸的,即在凸包内连接任意两点的直线都在凸包的内部,并且任意连续3个点的内角小于180度。在OpenCV中,它给我们提供cv2.convexHull(...