![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opencv-python 学习
文章平均质量分 55
opencv-python 学习
独憩
这个作者很懒,什么都没留下…
展开
-
python:dlib在视频流中提取面部特征点
下载dlib库这个库下载起来巨巨巨巨巨麻烦(当然不排除你运气比较好,一下子就成功了),具体下载方式请参考别的文章。视频流中提取面部特征点写在主循环之前:import numpy as npimport cv2import dlibcap = cv2.VideoCapture(0)detector = dlib.get_frontal_face_detector() # 创建一个容器predictor = dlib.shape_predictor('D:/shape_predi原创 2022-01-24 22:47:10 · 3989 阅读 · 0 评论 -
python-OpenCV:调用视频识别手势进行电脑音量调节
写在前面对于python调节音量的问题,一般都是直接使用pycaw库进行调节,但是当我们要设定电脑音量的时候,不能实现精确映射(我想让我的电脑音量是40,不能直接输入40),但是由于内部确实没有精确的关系,只能用一对一映射的方式。详情请参照:python-使用pycaw设置电脑音量(包含转换)_独憩的博客-CSDN博客手部识别可以通过mediapipe库进行:python-OpenCV 视频中的手部跟踪: 基于mediapipe库_独憩的博客-CSDN博客对于调用视频识别手势进行电脑音量原创 2021-12-24 17:06:19 · 4291 阅读 · 4 评论 -
python-OpenCV 视频中的手部跟踪: 基于mediapipe库
直接看代码:import cv2import mathimport timeimport mediapipe as mpfrom os import listdirmp_drawing = mp.solutions.drawing_utilsmp_hands = mp.solutions.hands#调用mediapipe库中的Hand函数,这个函数就可以识别手部hands = mp_hands.Hands(min_detection_confidence=0.5, min_tr.原创 2021-12-18 19:36:38 · 3515 阅读 · 1 评论 -
Python_OpenCV调用摄像头完成人脸识别
核心是找到 haarcascade_frontalface_default.xml 这个文件,一般来说下载了OpenCV库都有,直接去自己电脑找就行了import cv2# 调用模型库文件face_cascade = cv2.CascadeClassifier(r'XXXXXX\haarcascade_frontalface_default.xml')# 打开内置摄像头cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)#这个地方的cv2.CAP...原创 2021-12-16 10:06:14 · 4358 阅读 · 0 评论 -
cv.goodFeaturesToTrack:Shi-Tomasi角点检测-OpenCV-python
回顾Harris角点检测:Harris角点检测-OpenCV_独憩的博客-CSDN博客原创 2021-12-07 16:21:56 · 1870 阅读 · 0 评论 -
Harris角点检测-OpenCV
角点即特征很明显的点,直观来说,可以看成是图像中的各类“角”,例如房屋的顶角,棋盘的方块角等,例如下图中的蓝色点:Harris角点检测对原始图像划分小窗口,取:这里,Ix和Iy分别是x和y方向的图像导数。(这些可以用cv.Sobel()轻松找到)又取其中: det(M) = λ1λ2 trace(M) = λ1 + λ2 λ1和λ2是M的特征值 当|R|小的时候,也就是λ1和λ2都小的时候,该区域是平的。 当R <..原创 2021-12-05 16:44:24 · 2889 阅读 · 0 评论 -
分水岭算法-python-opencv
分水岭算法简单原理:对于一个图像的灰度值,将图像放平,可以看成是类似与山谷与山顶的图像,灰度值小的就是山底。先找到若干个山底,同时加水,当加到一定程度时候,某些山顶会被淹没,此时在山顶修建大坝,避免两处水汇集在一起。此时这个大坝就是分水岭,即边缘。原图像:二值化:利用OTSU方法首先进行二值化操作:详情请看:图像阈值处理-OpenCV_独憩的博客-CSDN博客import cv2.cv2import numpy as npimport cv2 as cvfrom mat.原创 2021-12-05 11:32:36 · 1928 阅读 · 0 评论 -
cv.HoughCircles:圆形霍夫变换-OpenCV
基本原理:对于圆周上的每一个点,求其梯度,根据梯度可做出关于此点的切线,与切线垂直的方向就是梯度样方向,每个点的梯度方向的交点就是圆心,然后根据圆心的位置可以确定其半径。直线的Hough变化:图像Hough变换_独憩的博客-CSDN博客函数:circles=cv.HoughCircles(image, method, dp, minDist[, param1[, param2[, minRadius[, maxRadius]]]]])image:灰度图像method:一般为cv.原创 2021-12-04 21:39:48 · 3369 阅读 · 0 评论 -
图像Hough变换
平面内线的表示方式为:现在考虑一个只有一条直线的图像,在直线上去一个点,其坐标为x,y对于原图像:img = cv.imread(r'XXXXX')#img = cv2.cv2.cvtColor(img, cv.COLOR_BGR2RGB)gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)edges = cv.Canny(gray,50,150,apertureSize = 3)lines = cv.HoughLines(edges,...原创 2021-12-04 16:32:48 · 2210 阅读 · 0 评论 -
cv.matchTemplate图像模型匹配-OpenCV
模板匹配是一种搜索和寻找模板图像在大图像中的位置的方法,OpenCV提供了cv.matchTemplate函数,其实质是将待匹配的小图像img1在img2上滑动,计算匹配度,得到不同区域的匹配度大小。cv.matchTemplate()提供了许多计算匹配度的方法,此处给出演示结果,但是不详细解释。对于原图像:import cv2.cv2import numpy as npimport cv2 as cvfrom matplotlib import pyplot as pl..原创 2021-11-30 09:48:55 · 2825 阅读 · 0 评论 -
图像傅里叶变换--OpenCV
傅里叶变换 傅里叶变换主要是将时间域上的信号转变为频率域上的信号,用来进行图像降噪,图像增强等处理。 对于数字图像这种离散的信号,频率大小表示信号变换的剧烈程度或者说信号变化的快慢。频率越大,变换越剧烈,频率越小,信号越平缓,对应到的图像中,高频信号往往是图像中的边缘信号和噪声信号,而低频信号包含图像变化频繁的图像轮廓及背景灯信号。 故傅里叶变换的结果图像中,中心的图像表示低频信号,边缘的图像代表高频图像,需要注意的是,原图像和傅里叶变换结果的图像不是一一对应的。dft ...原创 2021-11-29 20:48:53 · 8873 阅读 · 0 评论 -
图像直方图及其均衡化--opencv
直方图图像直方图指的是描述图像的强度分布,一般来说横轴为0-255,纵轴为横轴像素值对应的像素个数。opencv直方图img = cv.imread('XXX')hist = cv.calcHist([img],[0],None,[256],[0,256])参数说明:images : 类型为int8或float32的源图片。 图像图层索引。如果输入的是灰度图像,则是[0]。对于彩色图像,通过[0] 、[1]或[2]来分别计算蓝色、绿色或红色通道的直方图。 mask:掩膜图像。.原创 2021-11-28 17:39:09 · 1521 阅读 · 0 评论 -
OpenCV--Canny边缘检测
Canny边缘检测是一个多阶段的算法:1.减少噪音由于边缘检测容易收到噪声影响,采用5乘5高斯模糊去除噪音2.采用Sobel算子计算梯度计算竖直与水平方向上的梯度3.非极大值抑制在梯度方向上找寻最大值,其余的值赋值0,此时已经得到了边缘的初始样子4.双阈值处理设置两个阈值min,max,梯度大于max肯定为边缘,梯度小于min肯定不是边缘,在此中间的部分,由是否与大于max部分的梯度有连接,如果有则为边缘。例如下图中A,C为边缘,B不是。cv.Canny函数:.原创 2021-11-25 10:39:43 · 1313 阅读 · 0 评论 -
OpenCV--图像梯度
原图:形态学梯度:形态学其他操作见:图像膨胀、腐蚀、开运算、闭运算---python.opencv_独憩的博客-CSDN博客gradient = cv.morphologyEx(img, cv.MORPH_GRADIENT, kernel)cv.morphologyEx()是一个实现形态学操作的函数,可以实现开,闭,顶帽等,kernel为定义的核。拉普拉斯算子:拉普拉斯计算式,其实本质上是计算图像附近区域的导数:laplacian = cv.L...原创 2021-11-24 16:37:14 · 1189 阅读 · 0 评论 -
图像平滑-OpenCV
平均化:blur = cv.blur(img,(9,9))直接采用9×9的核进行卷积,得到平均值作为当前点的值。import cv2.cv2import numpy as npimport cv2 as cvimport matplotlib.pyplot as pltimg = cv2.imread(r'XXXX.jpg')img = cv2.resize(img, (0, 0), fx=0.1, fy=0.1, interpolation=cv2.INTER_NEAREST)原创 2021-11-24 10:58:50 · 761 阅读 · 0 评论 -
图像阈值处理-OpenCV
简单的阈值处理:cv.threshold(img,threshold_value,max_value,model)img:输入图像threshold_value:设置阈值max:设置的最大图像值,当原图像某点的值超高阈值既被赋予这个值model:阈值的方式:threshold_type=cv.THRESH_BINARY:dst(x,y) = max_value, if src(x,y)>threshold 0, otherwise.既大于阈值被赋予max,小于阈值被赋予0th原创 2021-11-24 10:35:00 · 811 阅读 · 0 评论 -
图像的几何变换-OpenCv
原始图像:缩放:图像处理基本操作 -python-opencv_独憩的博客-CSDN博客平移:水平方向向右平移180个像素,竖直方向向下平移50个像素import numpy as npimport cv2 as cvimport matplotlib.pyplot as pltimg = cv.imread(r'XXXX.jpg')img = cv.resize(img,(0,0), fx=0.1, fy=0.1, interpolation=cv.INTER_N.原创 2021-11-24 01:18:05 · 181 阅读 · 0 评论 -
opencv的绘图功能
导入相关包,并得到一个黑色的图像,大小为512*512:import cv2 as cvimport sysimport cv2.cv2import numpy as npimport cv2 as cv# Create a black imageimg = np.zeros((512, 512, 3), np.uint8)画直线:line(img,point1,point2,color,size)img:图像本身point1,2:起始点坐标color:颜色,为三维原创 2021-11-21 19:52:59 · 919 阅读 · 0 评论 -
图像处理基本操作 -python-opencv
导入图像:import numpy as npimport cv2 as cvimg = cv.imread(r'XXXXXXXX.png')分离与合并图层b,g,r = cv.split(img)img = cv.merge((g, b, r))绘制边框采用copyMakeBorder()函数,参数为:图像,上下左右宽度,边框方式需要主要的是,这里采用plt绘图,R,B倒置:import cv2 as cvimport numpy as npfrom..原创 2021-11-23 15:46:20 · 281 阅读 · 0 评论 -
图像膨胀、腐蚀、开运算、闭运算---python.opencv
膨胀膨胀即是将图像进行某种程度上的拓宽,即A⊕B,描述为集合B对集合A的膨胀,公式为:原创 2021-05-31 23:17:51 · 2227 阅读 · 6 评论 -
图像中值滤波器python实现
中值滤波器原理图像处理中最著名的统计排序滤波器是中值滤波器,即用一个预定义的像素领域中的灰度中值来代替像素的值:原创 2021-05-29 00:08:37 · 3157 阅读 · 12 评论