
OpenCV
戏 子
这个作者很懒,什么都没留下…
展开
-
OpenCV—模糊处理与高斯模糊
均值模糊与中值模糊import cv2 as cvimport numpy as npdef blur_demo(img): dst1 = cv.blur(img, (5, 5)) # 均值模糊 cv.imshow("blur_demo", dst1)def median_blur_demo(img): dst2 = cv.medianBlur(img...原创 2019-07-08 15:07:49 · 1284 阅读 · 0 评论 -
OpenCV—图像直方图的应用
直方图均匀化与直方图的比较cv2.equalizeHist函数原型:equalizeHist(src[, dst]) 。函数equalizeHist的作用:直方图均衡化,提高图像质量。 直方图均衡化:如果一副图像的像素占有很多的灰度级而且分布均匀,那么这样的图像往往有高对比度和多变的灰度色调。直方图均衡化就是一种能仅靠输入图像直方图信息自动达到这种效果的变换函数。它的基本思想是对图像中像素个...原创 2019-07-11 17:25:36 · 593 阅读 · 0 评论 -
opencv—canny边缘提取
Canny算法步骤①高斯模糊 - GaussianBlur②灰度转换 - cvtColor③计算梯度 – Sobel/Scharr④非最大信号抑制⑤高低阈值输出二值图像——高低阈值比值为2:1或3:1最佳import cv2 as cvdef canny_demo(img): gaus = cv.GaussianBlur(img, (3, 3), 0) gr...原创 2019-07-18 15:15:43 · 2747 阅读 · 0 评论 -
OpenCV—直线检测与圆检测
直线检测直线检测可以通过OpenCV的HoughLines和HoughLinesP函数来完成,它们仅有的差别是:第一个函数使用标准的Hough变换,第二个函数使用概率Hough变换,即只通过分析点的子集并估计这些点都属于一条直线的概率,这在计算速度上更快。函数原型:HoughLinesP(image, rho, theta, threshold, lines=None, minLineLe...原创 2019-07-18 17:18:11 · 1535 阅读 · 0 评论 -
opencv—图像阈值设置
1、简单阈值设置 像素值高于阈值时,给这个像素赋予一个新值(可能是白色),否则我们给它赋予另外一种颜色(也许是黑色)。这个函数就是 cv2.threshhold()。这个函数的第一个参数就是原图像,原图像应该是灰度图。第二个参数就是用来对像素值进行分类的阈值。第三个参数就是当像素值高于(有时是小于)阈值时应该被赋予的新的像素值。 OpenCV提供了多种不同的阈值方法,这是有第四个参数来...原创 2019-07-17 10:33:54 · 1200 阅读 · 0 评论 -
OpenCV—风水岭算法
分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成可以通过模拟浸入过程来说明。在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸入水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇合处构...原创 2019-07-25 10:23:45 · 372 阅读 · 0 评论 -
OpenCV—快速人脸检测(Haar分类器)
1、OpenCV人脸检测的方法在OpenCV中主要使用了两种特征(即两种方法)进行人脸检测,Haar特征和LBP特征。在OpenCV中,使用已经训练好的XML格式的分类器进行人脸检测。下载地址:https://github.com/opencv/opencv在OpenCV的安装目录下的sources文件夹里的data文件夹里可以看到下图所示的内容:上图中文件夹的名字“haarc...原创 2019-07-25 15:23:53 · 1391 阅读 · 0 评论 -
OpenCV—案例(数字验证码识别)
只是做个笔记 案例为实现想要的效果 (#^.^#)import cv2 as cvfrom PIL import Imageimport pytesseract as tess# opencv + Tesserct-ORCdef text(): gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY) ret, binar...原创 2019-07-25 16:45:04 · 570 阅读 · 0 评论 -
OpenCV—轮廓发现与对象测量
函数原型:1、查找轮廓---findContours()def findContours(image, mode, method, contours=None, hierarchy=None, offset=None)image:输入图像,image必须为一个2值单通道图像mode:表示轮廓的检索模式CV_RETR_EXTERNAL表示只检测外轮廓 CV_RETR_LIST...原创 2019-07-22 11:47:53 · 1153 阅读 · 0 评论 -
opencv—图像梯度
目标:图像梯度、边界函数cv2.Sobel(),cv2.Scharr(),cv2.Laplacian()简单的来说,梯度的原理就是求导数,opencv中有三种不同滤波器,或者说成高通滤波器。分别是Sobel,Scharr 和 LaplacianSobelSobel 和 Scharr 导数Sobel算子是结合了高斯平滑与微分运算的结合方法,所以它的抗噪声能力很强。用户可以设...原创 2019-07-18 11:41:24 · 4309 阅读 · 0 评论 -
OpenCV—模块匹配
模板匹配顾名思义,及给定模板在目标图像中滑动模板,在图像中匹配与模板最为相似的区域,主要由MatchTemplate()函数完成,OpenCV提供了六种图像匹配的方法,需要多次试验来寻找速度和精度的最佳方案import cv2 as cvimport numpy as npdef match_template_demo(): target = cv.imread("./../...原创 2019-07-15 16:31:26 · 1799 阅读 · 0 评论 -
OpenCV—边缘保留滤波(EPF)
高斯双边滤波前文提到的高斯模糊只考虑了像素空间的分布,而没有考虑差异问题。下图十分形象的说明了边缘保留滤波的原理。一张黑白分明存在噪声的图片通过高斯滤波保留边缘将二者区分开来。代码解析:# 边缘保留滤波(EPF)# 高斯双边滤波def bilateral_demo(img): dst = cv.bilateralFilter(src=img, d=0, sigmaC...原创 2019-07-08 15:28:37 · 2118 阅读 · 0 评论 -
OpenCV—图像直方图
图像直方图的两个基本属性:range[0, 256]和bins(组块) 直方图无空间信息 中间灰度级像素多,动态范围小,图像对比度低 直方图均匀分布时图像最清晰 图像的直方图是用来表现图像中亮度分布的直方图,给出的是图像中某个亮度或者某个范围亮度下共有几个像素,即统计一幅图某个亮度像素数量方法一:利用matplotlibimport cv2 as cvimport numpy a...原创 2019-07-08 16:49:51 · 413 阅读 · 0 评论 -
OpenCV—安装OpenCV、图像保存与加载、numpy数组的操作
安装OpenCV首先 先下载一个whl文件,关于opencv的,下载地址在这里:https://www.lfd.uci.edu/~gohlke/pythonlibs/其次 导包 只是pip 时候名字对应,跟自己python3.x,win_xx对应就好 下完了放到conda对应的文件夹里: d:\Anadonda3\Lib\site-packages在该目录下,shift+右键,...原创 2019-07-04 15:00:29 · 863 阅读 · 0 评论 -
OpenCV—色彩空间
色彩空间转换APIcv.COLOR_本身的api 2 想转换的api 通过以上实现之间的API之间的相互转换import cv2 as cv# 色彩空间之间的相互转换def color_space_demo(img): gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) cv.imshow("gray", g...原创 2019-07-04 15:33:52 · 287 阅读 · 0 评论 -
OpenCV—像素运算
算术运算与逻辑运算加:cv.add(src1, src2, dst=None, mask=None, dtype=None) 减:cv.subtract(src1, src2, dst=None, mask=None, dtype=None) 乘:cv.divide(src1, src2, dst=None, scale=None, dtype=None) 除:cv.multiply(...原创 2019-07-04 16:10:47 · 274 阅读 · 0 评论 -
OpenCV—ROI与泛洪填充
ROI寻找感兴趣的区域主要就是利用矩阵的切片功能来提取.根据输入image,将ROI映射到feature map对应位置; 将映射后的区域划分为相同大小的sections(sections数量与输出的维度相同); 对每个sections进行max pooling操作import cv2 as cvimport numpy as npsrc1 = cv.imread("D:/...原创 2019-07-04 17:08:03 · 221 阅读 · 0 评论 -
OpenCV—图像直方图的反向投影
这个技术常常用来跟踪目标,且需要转换在HSV色彩空间建立2D直方图import cv2 as cvimport numpy as npfrom matplotlib import pyplot as plt# 建立2D的直方图def hist2D_demo(img): hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV) hist ...原创 2019-07-15 11:16:23 · 199 阅读 · 0 评论 -
OpenCV—膨胀、腐蚀、开闭操作
膨胀与腐蚀二值腐蚀的具体操作是:用一个结构元素(一般是3×3的大小)扫描图像中的每一个像素,用结构元素中的每一个像素与其覆盖的像素做“与”操作,如果都为1,则该像素为1,否则为0。中心及领域有一个点不是黑点,该点就被腐蚀成白点二值膨胀的具体操作是:用一个结构元素(一般是3×3的大小)扫描图像中的每一个像素,用结构元素中的每一个像素与其覆盖的像素做“与”操作,如果都为0,则该像素为0,否...原创 2019-07-23 11:19:30 · 1159 阅读 · 0 评论