OpenCV课程总结
基本的OpenCV操作
下个路口遇见希望
这个作者很懒,什么都没留下…
展开
-
OpenCV基于dlib进行目标跟踪
对需要跟踪的目标用鼠标进行框选,点击鼠标左键框选出需要跟踪的物体松开鼠标左键(类似截图)代码实现# 1 加载库import cv2import dlib# 定义方法:显示信息def show_info(frame, tracking_state): pos1 = (10, 20) pos2 = (10, 40) pos3 = (10, 60) info1 = "put left button, select an area, starct tracking"原创 2022-01-12 19:29:26 · 1498 阅读 · 1 评论 -
OpenCV基于dlib进行人脸跟踪
1. 基于dlib库- - -检测人脸、跟踪人脸2. 基于dlib库- - -选定目标物体,跟踪目标代码实现# 1 加入库import cv2import dlib# 2 主函数def main(): # 3 打开摄像头 capture = cv2.VideoCapture(0) # 4 基于dlib库获取人脸检测器 detector = dlib.get_frontal_face_detector() # 5 基于dlib库实时跟踪 tr原创 2022-01-11 17:47:15 · 1586 阅读 · 0 评论 -
OpenCV基于face_recognition进行人脸关键点检测
1. face_recognition使用世界上最简单的人脸识别工具,它使用dlib最先进的人脸识别技术构建而成,并且具有深度学习功能。代码实现# 1 加载库import face_recognitionimport cv2import matplotlib.pyplot as plt# 2 方法:显示图片def show_image(image, title): plt.title(title) plt.imshow(image) plt.axis("off")#原创 2022-01-11 15:03:54 · 1707 阅读 · 0 评论 -
OpenCV基于dlib进行人脸关键点检测(摄像头)
1. dlib.get_frontal_face_detector()获取人脸检测器2. dlib.shape_predictor()预测人脸关键点人脸关键点模型,下载地址:http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2把下载好的压缩包解压放在项目中如图所示:代码实现:# 1 加载库import cv2import dlib# 2 打开摄像头capture = cv2.VideoCapture(0)#原创 2022-01-11 09:43:33 · 1563 阅读 · 0 评论 -
OpenCV基于dlib进行人脸关键点检测(图片)
1. dlib.get_frontal_face_detector()获取人脸检测器2. dlib.shape_predictor()预测人脸关键点人脸关键点模型,下载地址:http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2把下载好的压缩包解压放在项目中如图所示:代码实现:# 1 导入库import cv2import dlibimport matplotlib.pyplot as pltimport num原创 2022-01-10 21:58:59 · 266 阅读 · 0 评论 -
OpenCV基于dlib通过摄像头进行实时人脸检测
1. Dlib是一个深度学习开源工具,基于C++开发,也支持Python开发接口2. 由于Dlib对人脸特征提取支持很好,有很多训练好的人脸特征提取模型供开发者使用,所以Dlib人脸识别开发很适合做人脸项目开发3. HOG方向梯度直方图(Histogram of Oriented Gradient)(1) HOG是一种特征描述子,通常用于从图像数据中提取特征。它广泛用于计算机视觉任务的物体检测。(2) 特征描述子的作用:它是图像的简化表示,仅包含有关图像的最重要信息具体代码# 1 导入库imp原创 2022-01-10 19:53:05 · 1219 阅读 · 0 评论 -
OpenCV从摄像头中检测人脸
准备工作首先从GitHub(https://github.com/opencv/opencv)下载文件并解压,从data文件夹中的haarcascades复制一下文件放在自己的项目中代码实现# 1 导入库import cv2# 方法: 绘制图片中检测到的人脸def plot_rectangle(image, faces): # 拿到检测到的人脸数据, 返回4个值:坐标(x,y), 宽高width, height for (x, y, w, h) in faces:原创 2022-01-10 14:28:56 · 613 阅读 · 0 评论 -
OpenCV人脸检测基于Haar级联
Haar Cascade 哈尔级联1. 核心原理(1)使用Haar-like特征做检测(2)Integral Image : 积分图加速特征计算(3)AdaBoost : 选择关键特征, 进行人脸和非人脸分类(4)Cascade : 级联, 弱分类器成为强分类器准备工作首先从GitHub下载文件并解压,从data文件夹中的haarcascades复制一下文件放在自己的项目中代码实现# 1 导入库import cv2import numpy as npimport matplo原创 2022-01-10 14:22:07 · 443 阅读 · 0 评论 -
OpenCV图片上显示文本
# 1 导入库import cv2import numpy as npimport matplotlib.pyplot as plt# 2 定义颜色(字典形式)colors={'blue':(255, 0, 0), 'green':(0, 255, 0), 'red':(0, 0, 255), 'yellow':(0, 255, 255), 'magenta':(255, 0, 255), 'cyan':(255,原创 2022-01-08 21:26:24 · 739 阅读 · 0 评论 -
OpenCV画基本图形
1. 画直线 cv2.line()2. 画长方形 cv2.rectangle()3. 画圆型 cv2.circle()4. 画折线 cv2.polylines()原创 2022-01-08 17:04:31 · 886 阅读 · 0 评论 -
OpenCV彩色直方图
重点:(1)直方图是图像中像素强度分布(2)直方图统计了每一个强度值所具有的像素个数(3)cv2.calcHist(images,channels,mask,histSize,ranges)代码实现:# 1 导入库import cv2import matplotlib.pyplot as pltimport numpy as np# 2 方法:显示图片def show_image(image, title, pos): plt.subplot(3, 2, pos)# 定义一个三原创 2022-01-07 17:17:13 · 1380 阅读 · 0 评论 -
OpenCV灰度直方图——mask
mask : 提取感兴趣区域具体代码:# 1 导入库import cv2import matplotlib.pyplot as plt# 2 方法 :显示图片import numpy as npdef show_image(image, title, pos): img_RGB = image[:, :, ::-1] #BGR to RGB plt.title(title) plt.subplot(2, 2,pos) plt.imshow(img_RGB原创 2022-01-06 16:29:36 · 974 阅读 · 0 评论 -
OpenCV灰度直方图
一. 直方图的定义、意义和特征1. 定义在统计学中,直方图是一种对数据分布情况的图形表示,是一种二维统计图表,他的两个坐标分别是统计样本(图像、视频帧)和样本的某中属性(亮度,像素值,梯度,方向,色彩等等任何特征)2.意义(1) 直方图是图像中像素强度分布的图形表达方式。(2) 直方图统计了每一个强度所具有的像素个数3. 特征(1) 直方图不再表征任何的图像纹理信息,而是对图像像素的统计。(2) 由于同一物体无论是旋转还是平移在图像中都具有相同的灰度值,因此直方图具有平移不变性、放缩不变性原创 2022-01-06 14:54:32 · 1674 阅读 · 0 评论 -
OpenCV图像的八种变换
图像的八种变换1. 图像放大、缩小1.1 放大1.2 缩小2. 图像平移2.1 向右下平移2.1 向左上平移3. 图像旋转4. 图像仿射变换5. 图像裁剪6. 位运算(AND,OR,XOR)6.1AND(与运算)6.2 OR(或运算)7. 图像的分离和融合7.1 分离7.2 融合8. 颜色空间8.1 灰度8.2 HSV(色度、饱和度、纯度)8.1 lab1. 图像放大、缩小import cv2import matplotlib.pyplot as pltimport numpy as npimg原创 2022-01-05 10:58:13 · 1253 阅读 · 0 评论 -
OpenCV_保存摄像头读取到的视频
1 代码实现部分:# 1 导入库import cv2import argparse# 2 获取参数parser = argparse.ArgumentParser()# 3 添加参数parser.add_argument("video_output", help="the path to the output video")# 4 解析参数args = parser.parse_args()# 5 捕获摄像头capture = cv2.VideoCapture(0)# 6原创 2022-01-04 10:06:00 · 1017 阅读 · 0 评论 -
OpenCV从视频文件读取内容
1 代码实现:# 1 加载库import cv2import argparse# 2 获取参数parser = argparse.ArgumentParser()# 3 添加参数parser.add_argument("video_path", help="the path to the video file")# 4 解析参数args = parser.parse_args()# 5 加载视频文件capture = cv2.VideoCapture(args.video_p原创 2022-01-04 09:25:24 · 383 阅读 · 0 评论 -
OpenCV从摄像头读取视频
具体代码实现:# 1 导入库import cv2import argparse# 2 获取参数parser = argparse.ArgumentParser()# 3 添加参数parser.add_argument("index_camera", help="the camera ID", type=int)# 4 解析参数args = parser.parse_args()print("the camera index:", args.index_camera)# 5 捕获原创 2022-01-03 15:51:58 · 1192 阅读 · 0 评论 -
OpenCV读取_处理_保存图片
1.流程:#mermaid-svg-GAJAnUO55pMciS47 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-GAJAnUO55pMciS47 .label text{fill:#333}#mermaid-svg-GAJAnUO55pMciS47 .node rect,#mermaid-svg-GAJA原创 2022-01-03 10:32:12 · 564 阅读 · 0 评论 -
OpenCV读取图片
OpenCV读取图片的两种方式第一种方式:直接通过Anaconda读取、显示①读取有色图片import cv2#导入库img = cv2.imread("images/1.jpg")#读取图片# 显示图片cv2.imshow("image",img)#等待cv2.waitKey(0)#关闭所有窗口cv2.destroyAllWindows()②读取灰度图片import cv2gray_img = cv2.imread("images/2.jpg", cv2.IMREAD_GR原创 2022-01-02 21:48:06 · 21717 阅读 · 1 评论