![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenCV
文章平均质量分 74
定期不定期的日常分享。。。
武尚发的博客
机器视觉狗
展开
-
OpenCV笔记整理【人脸检测之Harr级联分类器&&dlib库】
OpenCV提供的级联分类器有Harr、HOG、LBP这3种,这些分类器以XML文件保存,这里主要演示Harr检测人脸(OpenCV提供的分类器不仅限于检测人脸,还包括下表特征检测,当然OpenCV还支持训练自己的级联分类器,这里不做说明。免费的开源库,虽然测试速度不及前面的Harr级联分类器,但是准确率非常高。以上,如有错误,欢迎指正批评!上代码:通过摄像头检测人脸。上代码:检测图片中的人脸。原创 2023-06-02 20:49:32 · 2153 阅读 · 0 评论 -
OpenCV笔记整理【绘制图形文字】
OpenCV 绘制图形文字原创 2022-09-17 19:19:40 · 2692 阅读 · 0 评论 -
OpenCV笔记整理【视频处理】
OpenCV【视频处理】原创 2022-08-06 16:36:00 · 1500 阅读 · 0 评论 -
OpenCV笔记整理【霍夫变换】
霍夫变换原创 2022-07-12 11:09:14 · 1346 阅读 · 0 评论 -
OpenCV笔记整理【模板匹配】
OpenCV 之模板匹配原创 2022-06-26 17:58:30 · 2671 阅读 · 2 评论 -
OpenCV笔记整理【傅里叶变换】
在Numpy和OpenCV中,实现傅里叶变换,包括高低通滤波的演示。。。原创 2022-06-18 20:42:03 · 880 阅读 · 1 评论 -
OpenCV笔记整理【pyplot模块】
1. 介绍:Matplotlib 是 Python 的绘图库,是一个非常强大的 Python 画图工具,可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。引入pyplot模块: import matplotlib.pyplot as plt2. 使用plot函数绘制:plt.plot (x, y, ‘style’)x::绘制点的x坐标或者数组。y:绘制点的y坐标或者数组原创 2022-03-13 19:11:12 · 4631 阅读 · 0 评论 -
OpenCV笔记整理【直方图和掩模】
1. 直方图:直方图统计图像中各个灰度级出现的次数,横坐标为各个像素点的灰度级,纵坐标是具有该灰度级的像素个数。上面这个九宫格我们可以想象成一张图像,里面的数字代表当前像素的灰度等级。用图表显示:X轴代表统计次数,Y轴代表灰度级在实际处理中,X轴代表8位的256个灰度级[0-255],Y轴代表具有相应的灰度级的像素点的个数。示例: 统计这个纯白色背景下的黑色8的图像的直方图2. 绘制直方图:模块matplotlib.pyplot 提供了一个类似 MATLAB 的绘图框架,其中hist原创 2022-03-05 18:11:54 · 2714 阅读 · 0 评论 -
OpenCV笔记整理【图像轮廓】
相对于边缘检测,图像轮廓可以将边缘连接起来形成一个整体,其中包括目标的大小、位置、方向等信息。1. 查找轮廓:findContours()格式:contours, hierarchy = findCountours ( image, mode, method )返回值 contours:找到的轮廓contours下面包括若干个contours[i], 每个contours[i]代表一个轮廓,表示一个numpy.ndarray类型。获取总轮廓数:len(contours)获取当前轮廓的总像素原创 2022-02-19 19:24:16 · 2989 阅读 · 0 评论 -
OpenCV笔记整理【高斯金字塔&拉普拉斯金字塔】
图像金字塔是同一图像不同分辨率的子图集合,通过对原图的不断向下采样而产生,由高分辨率的图像产生低分辨率的近似图像。1. 高斯金字塔:不可逆采样向下采样import cv2o=cv2.imread("lena.bmp",cv2.IMREAD_GRAYSCALE)r1=cv2.pyrDown(o) # 对原图第一次向下采样r2=cv2.pyrDown(r1) # 对第一次采样的图像再次向下采样r3=cv2.pyrDown(r2) # 对第二次采样的图像再次向下采样print("o.shap原创 2021-09-24 20:06:23 · 1327 阅读 · 1 评论 -
OpenCV笔记整理【Canny边缘检测】
Canny边缘检测是一种使用【多阶段】边缘检测算法检测边缘的方法。主要分为以下步骤:1. 去噪:过滤噪声,使用滤波平滑一些纹理较弱的非边缘区域。2. 计算梯度:计算梯度的幅度与角度(PS: 2↑ 表示幅度为2,角度90°),值得注意的是,边缘和梯度始终是垂直的。3. 非极大值抑制:依次遍历像素点,判断当前像素点是否为周围梯度方向内的最大值。如果是最大值则保留,否则抑制(归零)。4. 使用双阈值确定边缘:剔除虚边缘,确定真正的边缘。经过前面的步骤,我们已经得到了一些边缘,但是这些边缘原创 2021-09-24 16:59:40 · 259 阅读 · 0 评论 -
OpenCV笔记整理【图像梯度之Sobel & Scharr & Laplacian】
1. Sobel 算子:通过计算局部差分寻找边缘,计算得到一个梯度的近似值。滤波器(核):由一幅图像根据像素点(x,y)临近的区域计算得到另外一张图像的算法。滤波的目标像素的值等于原始像素及其周围像素的加权和,这种基于线性核的滤波,就是卷积。1. 计算水平方向偏导数的近似值计算公式为:P5的水平方向偏导数 = (P3-P1) + 2(P6-P4) + (P9-P7) 为了避免计算出负数造成信息丢失,需要时取绝对值。计算过程为:最左边的像素值 - 最右边的像素值,但是中间一行的权重是最高的,乘以2原创 2021-07-27 16:47:35 · 1479 阅读 · 1 评论 -
OpenCV笔记整理【形态学操作】
1. 形态学操作:形态学操作主要包括:腐蚀、膨胀、开运算、闭运算、形态学梯度、顶帽、黑帽。1. 腐蚀: 相对于黑底白字而言,将图像的边界点消除,使图像沿着边界向内收缩,也可以将小于指定结构体元素的部分去除。import cv2import numpy as np# 这里的演示中:0-黑色、1-白色img=np.zeros((5,5),np.uint8) # 创建一个5*5的矩阵,默认元组0img[1:4,1:4]=1 # 将横向1-4到纵向1-4全部置1kernel = np.ones((原创 2021-07-25 01:05:35 · 621 阅读 · 1 评论 -
OpenCV笔记整理【二】
接前面1. 阈值处理: threshold()import cv2import numpy as np# 创建一个8位的4行5列的矩阵,元素0-255之间随机img=np.random.randint(0,256,size=[4,5],dtype=np.uint8)# thrshold(图像,# 阈值,# 当后面的分割类型为Binary或者Binary_Inv时,这里表示最大阈值,# 分割类型)t,rst=cv2.threshold(img,127,255,原创 2021-06-06 16:14:07 · 186 阅读 · 0 评论 -
OpenCV笔记整理【一】
1. 简介:OpenCV的全称是 Open Source Computer Vision Library,是一个跨平台的开源计算机视觉库。由Gary Bradsky于1999年在英特尔发起并创立。这里使用的OpenCV版本为:4.5.2查看当前的Python版本的OpenCV版本:# 导入OpenCV模块import cv2# 打印版本信息print(cv2.__version__)2. 基本语法:读取一张图片并显示:# 导入模块import cv2# 读取图片# cv.IMR原创 2021-05-28 17:28:52 · 570 阅读 · 0 评论