pyopencv
文章平均质量分 65
hunter206206
业精于勤
展开
-
opencv-python视频实时识别二维码
【代码】opencv-python视频实时识别二维码。原创 2023-08-16 16:19:32 · 429 阅读 · 0 评论 -
金属纳米颗粒图像分割和计数
用距离变换和分水岭算法实现了金属纳米颗粒图像的分割与自动计数,可以直接下载代码使用。原创 2022-11-20 19:06:38 · 249 阅读 · 0 评论 -
基于opencv-python实现多个弱连接的led分割并计算质心
写了一段程序,程序代码请点击。原创 2022-11-19 17:46:21 · 864 阅读 · 0 评论 -
拉普拉斯金字塔图像融合原理
拉普拉斯金字塔图像融合原理原创 2022-11-08 10:00:41 · 843 阅读 · 0 评论 -
vscode opencv-python 代码不自动提示
vscode opencv-python代码不自动提示原创 2022-05-20 20:53:51 · 3999 阅读 · 1 评论 -
【opencv-python】机器视觉|镜头选型案例分析
假如我想检测一张电路板某个焊片的尺寸,整个电路板的尺寸是50mm×50mm,相机需要拍到整个电路板全貌,单个焊盘的尺寸是5mm×5mm,如下图所示:先确定整张图片的分辨率,通过这个指标确定相机,就是想用多少像素拍整张图片。假如我们想用1024×1280像素的分辨率显示整张图像,那么图像的总像素数为1310720pixels,大约130万像素,如果选用aca1300-60gm-NIR型号相机,按照相机数据手册如下图所示:相机距离载物台距离为200mm,如果我想让尺寸检测精度达到5um,则按照等比例关系,原创 2021-10-21 22:11:13 · 1384 阅读 · 0 评论 -
【opencv-python】函数形参标签缺省引发报错的问题
在霍夫圆变换程序中,我们调用霍夫圆变换函数原创 2021-10-20 22:20:20 · 1183 阅读 · 0 评论 -
【opencv-python】python基础操作|取消科学计数法显示输出矩阵
有时我们在python开发(尤其是矩阵开发)的过程中,经常会遇到科学技术法的数据输出形式,这让我们很难辨识真实的数据,如下图所示:其实只要在文件开头增加两行代码,就可以取消这种显示,让调试回归正常:import numpy as npnp.set_printoptions(suppress=True)输出数据则变成如下形式:还是很方便的。...原创 2020-05-03 14:45:24 · 2194 阅读 · 0 评论 -
【opencv-python】霍夫圆检测
霍夫变换检测直线的原理是利用累加器找到最大的(ρ,θ)(ρ,θ)(ρ,θ)数对,如文章所述。圆形的数学表达式为(x−xcenter)2+(y−ycenter)2=r2(x-x_{center})^2+(y-y_{center})^2=r^2(x−xcenter)2+(y−ycenter)2=r2,其中(xcenter,ycenter)(x_{center},y_{center})(xcenter,ycenter)为圆心坐标,rrr为圆的直径。因此可知一个圆需要xcenter,ycenter,rx_{原创 2021-10-19 22:59:30 · 7111 阅读 · 0 评论 -
【opencv-python】概率霍夫变换
概率霍夫变换(probabilistic Hough transform)用于查找二值图像中的线段,python函数为cv2.HoughLinesP(),该函数实现[Matas00]中描述的用于线段检测的概率Hough变换算法。原创 2021-10-18 17:00:54 · 961 阅读 · 0 评论 -
【opencv-python】霍夫变换检测直线原理(累加器法)
直线可以表达成y=kx+by=kx+by=kx+b的形式,这是用斜率和截距表达出来的。也可以用“点法式”来表示,原创 2021-10-17 19:38:21 · 2324 阅读 · 0 评论 -
【opencv-python】轮廓操作
参考资料Contours in OpenCV学习目标理解轮廓是什么学习如何找到并绘制轮廓相关函数:cv.findContours(), cv.drawContours()什么是轮廓轮廓可以简单地解释为连接所有连续点(沿边界)的曲线,具有相同的颜色或灰度。轮廓是形状分析和对象检测和识别的有用工具。为了获得更好的准确性,使用二值图像。所以在找到轮廓之前,应该用阈值或Canny边缘检测算法先进行预处理。自OpenCV 3.2以后,findContours()不再对源图像进行修改。在应用中,查原创 2021-10-11 23:38:33 · 1023 阅读 · 0 评论 -
【opencv-python】图像金字塔
参考资料:基本原理:一般情况下,我们要处理是一副具有固定分辨率的图像。但是有些情况下,我们需要对同一图像的不同分辨率的子图像进行处理。比如,我们要在一幅图像中查找某个目标,比如脸,我们不知道目标在图像中的尺寸大小。这种情况下,我们需要创建创建一组图像,这些图像是具有不同分辨率的原始图像。我们把这组图像叫做图像金字塔(简单来说就是同一图像的不同分辨率的子图集合)。如果我们把最大的图像放在底部,最小的放在顶部,看起来像一座金字塔,故而得名图像金字塔。...原创 2021-10-08 15:11:36 · 914 阅读 · 0 评论 -
【opencv-python】全景图像拼接
参考资料Panoramic Image Mosaic概述图像全景拼接技术对于商用和艺术领域都有很高的价值。自从摄影术诞生以来,人们发明了许多特定的设备来制作全景图像,但由于价格低廉的数码相机也可以胜任,使得人们对自动全景图像拼合的需求度大大增加。在我们这个示例项目中,我们使用圆柱形扭曲创建全景图像。圆柱形翘曲是最容易实现的,但它有严格的要求,所有的图像必须采取相机放置或已知的倾斜角度。而使用这种方法,我们不需要进行完全单应性计算,只需要沿角度方向进行平移即可创建全景图像。技术路线图如下图所示:正原创 2021-10-07 22:50:52 · 2082 阅读 · 4 评论 -
【opencv-python】Sobel算子说明
Sobel算子主要用于计算图像梯度,详细说明可见维基百科,其原理如下图所示:原图像为:经过Sobel算法运算后的图像为:可见边缘被明显增强了。感谢支持,欢迎关注,丰富技术/学术内容持续更新!opencv-python快速入门视频教程...原创 2021-10-04 23:34:37 · 745 阅读 · 0 评论 -
【opencv-python】深入分析Canny边缘检测算法原理
参考资源:Canny edge detectorCanny边缘检测算法是一种使用多步骤算法对图像中大范围边缘进行识别探测的方法。Canny算法在1986年由John F提出,是一种从不同视觉物体提取有用的结构信息并可以显著地减少数据处理量的边缘检测技术,目前已经应用在不同的计算机视觉系统中。Canny还发现不同的视觉系统对边缘检测的需求是近似的。因此,一种能满足诸多需求的边缘提取解决方案可以在大范围场景中使用。一般的边缘提取指标要求包含以下几个方面:边缘检测的识别率要低,边缘检测算法可以精确识别到图原创 2021-10-03 22:24:25 · 998 阅读 · 0 评论 -
【opencv-python】结构化操作
在前面的例子中我们使用 Numpy 构建了结构化元素,它是正方形的。但有时我们需要构建一个椭圆形/圆形的核。为了实现这种要求,提供了 OpenCV函数 cv2.getStructuringElement(),你只需要告诉他你需要的核的形状和大小,函数的具体定义如下图所示:可见,结构化操作支持矩形、椭圆形和十字形三种形状的kernel生成操作,运行效果如下图所示:...原创 2021-10-02 15:34:47 · 178 阅读 · 0 评论 -
【opencv-python】形态学转换—开/闭运算/形态学梯度/礼帽/黑帽
通过cv2.morphologyEx()函数,可以实现图像的开/闭运算/形态学梯度/礼帽/黑帽运算,函数说明如下图所示:每一种形态学的含义如下图所示:如公式所述,开运算就是对图像先进行腐蚀再进行膨胀操作,代码为:opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)处理效果为:因为在进行腐蚀的过程中,杂散小斑点被替换为0,再次进行膨胀后,原有的杂散小斑点将不会重现,而主要信息区域基本不受影响,因此这种操作可以实现对杂散点滤波的效果。相反原创 2021-10-02 15:27:26 · 264 阅读 · 0 评论 -
【opencv-python】形态学转换—腐蚀/膨胀
形态学操作主要包括腐蚀、膨胀、开运算、闭运算等,在opencv-python中,有相关函数可以满足要求,如cv2.erode(),cv2.dilate(),cv2.morphologyEx()等。形态学操作是根据图像形状进行的简单操作,一般情况下对二值化图像进行的操作。需要输入两个参数,一个是原始图像,第二个被称为结构化元素或核,它是用来决定操作的性质的。两个基本的形态学操作是腐蚀和膨胀,它们的变体构成了开运算、闭运算、梯度等,以下图为例逐一介绍。首先对这张图进行腐蚀,代码如下:import cv2原创 2021-10-01 11:26:33 · 333 阅读 · 0 评论 -
【opencv-python】双边滤波效果分析
双边滤波是图像滤波中经常使用的一种技术,在opencv-python中,函数cv2.bilateralFilter()可以实现此功能。双边滤波相比于平均、高斯、中值等基于图像模糊原理的滤波技术,最大的优势是可以保全图像中的边缘信息,能在保持边界清晰的情况下有效的去除噪音,如官方教程中所给的示例图像:左侧图像能清晰看到纹理和边缘,经过双边滤波之后,纹理被明显模糊掉,但是边缘仍然较清晰保持,可见双边滤波函数的作用比较明显。我们再尝试对一张图片进行处理,原图如下图所示:cv2.imread()读入之后转换为原创 2021-09-30 11:12:12 · 1986 阅读 · 0 评论 -
【opencv-python】大津法(Otsu)阈值分割原理深入分析
大津法(Ostu)是图像处理领域里面较为重要的阈值分割方法,适用于处理双峰图像。但大多数开发人员并不熟悉其原理,因此有必要对其进行详细说明与分析。opnecv的实例代码链接为:opencv-python大津法(Ostu)官方说明文档python代码为:img = cv2.imread('road.jpg',0)blur = cv2.GaussianBlur(img,(5,5),0)# find normalized_histogram, and its cumulative distributi原创 2021-09-27 08:01:55 · 8440 阅读 · 0 评论 -
【opencv-python】卷积边缘处理选项分析
在使用opencv-python进行图像处理过程中,经常会使用卷积对图像进行滤波,在卷积运算过程中,卷积边缘如何处理经常让开发者感到略微困惑,现对此问题进行深入分析。我们使用最简单的滤波函数cv2.filter2D()进行分析,cv2.filter2D()函数的说明见链接,其中borderType指明用何种边缘处理方法,根据官方函数文档提示,有如下几个选项:可见关于BORDER的选项有很多,但是在opencv的官方教程中并没有找到每一种BORDER的精确含义和说明,因此我们选择其中某几个进行测试。首先测原创 2021-09-29 22:32:13 · 801 阅读 · 0 评论