# OPENCV4_DEMOS_PYTHON **Repository Path**: tomwoo/OPENCV4_DEMOS_PYTHON ## Basic Information - **Project Name**: OPENCV4_DEMOS_PYTHON - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-08-25 - **Last Updated**: 2023-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OPENCV4_DEMOS_PYTHON ## 1. 项目介绍 本项目通过Python代码示范了OpenCV 4的各个模块、各个功能的使用方法。本项目的范例来自于知识星球网站的“OpenCV研习社”的“OpenCV 4与计算机视觉知识点分享”课程。本项目在此基础上进行修改、整理、完善。OpenCV的学习者在购买此课程学习后,可走读、运行范例代码,以加深对视觉算法的认识,进一步对所学知识点进行巩固。 ## 2. 项目内容 - src: 源文件 - images: 图像文件 - videos: 视频文件 - models: 模型文件 ## 3. 范例目录 本项目包含140个课程范例。所有范例代码位于文件夹"src"中。每份范例代码均存放于1个单独的Python源文件中。其对应的课程序号、名称与链接如下: OpenCV-day-001. [图像读取与显示](https://t.zsxq.com/auvvV3f ) OpenCV-day-002. [图像色彩空间转换](https://t.zsxq.com/rrvNnI2 ) OpenCV-day-003. [图像对象的创建与赋值](https://t.zsxq.com/YjM3BUV ) OpenCV-day-004. [图像像素的读写操作](https://t.zsxq.com/Ybyb2bU ) OpenCV-day-005. [图像像素的算术操作](https://t.zsxq.com/u3Jam6y ) OpenCV-day-006. [LUT的作用与用法](https://t.zsxq.com/7yBEaIe ) OpenCV-day-007. [图像像素的逻辑操作](https://t.zsxq.com/ZbYnmMJ ) OpenCV-day-008. [通道分离与合并](https://t.zsxq.com/qZfQzf2 ) OpenCV-day-009. [图像色彩空间转换](https://t.zsxq.com/M3zVbaQ ) OpenCV-day-010. [图像像素值统计](https://t.zsxq.com/2vJYzRv ) OpenCV-day-011. [像素归一化](https://t.zsxq.com/UZnUrfm ) OpenCV-day-012. [视频文件的读写](https://t.zsxq.com/NBYzNJq ) OpenCV-day-013. [图像翻转](https://t.zsxq.com/BQ7EmUj ) OpenCV-day-014. [图像插值](https://t.zsxq.com/ZzfIEur ) OpenCV-day-015. [几何形状绘制](https://t.zsxq.com/FQnMjam ) OpenCV-day-016. [图像ROI与ROI操作](https://t.zsxq.com/zJuvVzJ ) OpenCV-day-017. [图像直方图](https://t.zsxq.com/nqR3Rvn ) OpenCV-day-018. [图像直方图均衡化](https://t.zsxq.com/nUr3BaI ) OpenCV-day-019. [图像直方图比较](https://t.zsxq.com/Vz3nEYJ ) OpenCV-day-020. [图像直方图反向投影](https://t.zsxq.com/v7MjEiu ) OpenCV-day-021. [图像卷积操作](https://t.zsxq.com/IAyRvB2 ) OpenCV-day-022. [图像均值与高斯模糊](https://t.zsxq.com/BURFM7Y ) OpenCV-day-023. [中值模糊](https://t.zsxq.com/y3z33vN ) OpenCV-day-024. [图像噪声](https://t.zsxq.com/6EQRjmq ) OpenCV-day-025. [图像去噪声](https://t.zsxq.com/2FEqRzN ) OpenCV-day-026. [高斯双边模糊](https://t.zsxq.com/iUVb2RZ ) OpenCV-day-027. [均值迁移模糊](https://t.zsxq.com/Nf2RNrZ ) OpenCV-day-028. [图像积分图算法](https://t.zsxq.com/AiEe2ZV ) OpenCV-day-029. [快速的图像边缘滤波算法](https://t.zsxq.com/f2NfUnA ) OpenCV-day-030. [OpenCV自定义的滤波器](https://t.zsxq.com/3J2BAYr ) OpenCV-day-031. [图像梯度—Sobel算子](https://t.zsxq.com/YZZRjQ3 ) OpenCV-day-032. [图像梯度—更多梯度算子](https://t.zsxq.com/amYRBQz ) OpenCV-day-033. [图像梯度—拉普拉斯算子](https://t.zsxq.com/BYBEAQb ) OpenCV-day-034. [图像锐化](https://t.zsxq.com/jiaM7eA ) OpenCV-day-035. [USM锐化增强算法](https://t.zsxq.com/7UNvJyB ) OpenCV-day-036. [Canny边缘检测器](https://t.zsxq.com/RRr7mMB ) OpenCV-day-037. [图像金字塔](https://t.zsxq.com/N7iiMRf ) OpenCV-day-038. [拉普拉斯金字塔](https://t.zsxq.com/fUrzZfq ) OpenCV-day-039. [图像模板匹配](https://t.zsxq.com/2fEIMrJ ) OpenCV-day-040. [二值图像介绍](https://t.zsxq.com/RR33VBe ) OpenCV-day-041. [OpenCV中的基本阈值操作](https://t.zsxq.com/R3jiAey ) OpenCV-day-042. [OTSU二值寻找算法](https://t.zsxq.com/Q3bMJIu ) OpenCV-day-043. [TRIANGLE二值寻找算法](https://t.zsxq.com/u7QFAM7 ) OpenCV-day-044. [自适应阈值算法](https://t.zsxq.com/i6IQfey ) OpenCV-day-045. [图像二值化与去噪](https://t.zsxq.com/7UZRVrb ) OpenCV-day-046. [二值图像联通组件寻找](https://t.zsxq.com/UVbEYrZ ) OpenCV-day-047. [二值图像连通组件状态统计](https://t.zsxq.com/mam2jiI ) OpenCV-day-048. [二值图像分析—轮廓发现](https://t.zsxq.com/ybEYVFU ) OpenCV-day-049. [二值图像分析—轮廓外接矩形](https://t.zsxq.com/7UJyJqV ) OpenCV-day-050. [二值图像分析—矩形面积与弧长](https://t.zsxq.com/2N7AujY ) OpenCV-day-051. [二值图像分析—使用轮廓逼近](https://t.zsxq.com/3biQZ33 ) OpenCV-day-052. [二值图像分析—用几何矩计算轮廓中心与横纵比过滤](https://t.zsxq.com/B2BAqji ) OpenCV-day-053. [二值图像分析—Hu矩实现轮廓匹配](https://t.zsxq.com/UbIyrbA ) OpenCV-day-054. [二值图像分析—对轮廓圆与椭圆拟合](https://t.zsxq.com/eujYbuN ) OpenCV-day-055. [二值图像分析—凸包检测](https://t.zsxq.com/7aIyjQJ ) OpenCV-day-056. [二值图像分析—直线拟合与极值点寻找](https://t.zsxq.com/AMvjMrB ) OpenCV-day-057. [二值图像分析—点多边形测试](https://t.zsxq.com/J2jAee6 ) OpenCV-day-058. [二值图像分析—寻找最大内接圆](https://t.zsxq.com/Vz3rzbE ) OpenCV-day-059. [二值图像分析—霍夫直线检测](https://t.zsxq.com/6Yv3NFq ) OpenCV-day-060. [二值图像分析—霍夫直线检测二](https://t.zsxq.com/ei6IMf6 ) OpenCV-day-061. [二值图像分析—霍夫圆检测](https://t.zsxq.com/YRnyznE ) OpenCV-day-062. [图像形态学—膨胀与腐蚀](https://t.zsxq.com/Jeyvjqn ) OpenCV-day-063. [图像形态学—膨胀与腐蚀](https://t.zsxq.com/BMz3vfu ) OpenCV-day-064. [图像形态学—开操作](https://t.zsxq.com/aeqZFUb ) OpenCV-day-065. [图像形态学—闭操作](https://t.zsxq.com/3b6qJQZ ) OpenCV-day-066. [图像形态学—开闭操作时候结构元素应用演示](https://t.zsxq.com/EQzFqB2 ) OpenCV-day-067. [图像形态学—顶帽操作](https://t.zsxq.com/URj27ae ) OpenCV-day-068. [图像形态学—黑帽操作](https://t.zsxq.com/6uZ376M ) OpenCV-day-069. [图像形态学—图像梯度](https://t.zsxq.com/3rJQbmA ) OpenCV-day-070. [形态学应用—用基本梯度实现轮廓分析](https://t.zsxq.com/Uvr3rBy ) OpenCV-day-071. [形态学操作—击中击不中](https://t.zsxq.com/vniEQ33 ) OpenCV-day-072. [二值图像分析—缺陷检测一](https://t.zsxq.com/yNN76YJ ) OpenCV-day-073. [二值图像分析—缺陷检测二](https://t.zsxq.com/eIMbmY3 ) OpenCV-day-074. [二值图像分析—提取最大轮廓与编码关键点](https://t.zsxq.com/yf6u33B ) OpenCV-day-075. [图像去水印/修复]( https://t.zsxq.com/EIUBIaA ) OpenCV-day-076. [图像透视变换应用](https://t.zsxq.com/QnyfmQR ) OpenCV-day-077. [视频读写与处理](https://t.zsxq.com/YrfUJ2r ) OpenCV-day-078. [识别与跟踪视频中的特定颜色对象](https://t.zsxq.com/AQ7UBie ) OpenCV-day-079. [视频分析—背景/前景提取](https://t.zsxq.com/baQbIa6 ) OpenCV-day-080. [视频分析—背景消除与前景ROI提取](https://t.zsxq.com/UfeAUNf ) OpenCV-day-081. [角点检测—Harris角点检测](https://t.zsxq.com/Z3jiYJa ) OpenCV-day-082. [角点检测—shi-tomas角点检测](https://t.zsxq.com/buVJAUV ) OpenCV-day-083. [角点检测—亚像素级别角点检测](https://t.zsxq.com/bAmi2Ba ) OpenCV-day-084. [视频分析—移动对象的KLT光流跟踪算法](https://t.zsxq.com/eeybEem ) OpenCV-day-085. [视频分析—KLT光流跟踪 02](https://t.zsxq.com/EqrJ2bU ) OpenCV-day-086. [视频分析—稠密光流分析](https://t.zsxq.com/nMjIQzn ) OpenCV-day-087. [视频分析—基于帧差法实现移动对象分析](https://t.zsxq.com/rRZNRzV ) OpenCV-day-088. [视频分析—基于均值迁移的对象移动分析](https://t.zsxq.com/bmM7ea6 ) OpenCV-day-089. [视频分析—基于连续自适应均值迁移的对象移动分析](https://t.zsxq.com/IaEUnYF ) OpenCV-day-090. [视频分析—对象移动轨迹绘制](https://t.zsxq.com/RjYRFQV ) OpenCV-day-091. [对象检测—HAAR级联检测器使用](https://t.zsxq.com/RBMVvbA ) OpenCV-day-092. [对象检测—HAAR特征介绍](https://t.zsxq.com/b2fAIuV ) OpenCV-day-093. [对象检测—LBP特征介绍](https://t.zsxq.com/amIMnuz ) OpenCV-day-094. [ORB FAST特征关键点检测](https://t.zsxq.com/aQByrZB ) OpenCV-day-095. [BRIEF特征描述子 匹配](https://t.zsxq.com/nIEmQB6 ) OpenCV-day-096. [描述子匹配](https://t.zsxq.com/vRFi6Ie ) OpenCV-day-097. [基于描述子匹配的已知对象定位](https://t.zsxq.com/mq7aQfy ) OpenCV-day-098. [SIFT特征提取—关键点提取](https://t.zsxq.com/VRrN7AM ) OpenCV-day-099. [SIFT特征提取—描述子生成](https://t.zsxq.com/6MJYN7A ) OpenCV-day-100. [HOG特征与行人检测](https://t.zsxq.com/jm6MJQV ) OpenCV-day-101. [HOG特征描述子—多尺度检测](https://t.zsxq.com/UNZvZ7i ) OpenCV-day-102. [HOG特征描述子—提取描述子](https://t.zsxq.com/6qzvJAU ) OpenCV-day-103. [HOG特征描述子—使用描述子特征生成样本数据](https://t.zsxq.com/JAAqBYv ) OpenCV-day-104. [SVM线性分类器](https://t.zsxq.com/AyZNZN7 ) OpenCV-day-105. [HOG特征描述子—使用HOG进行对象检测](https://t.zsxq.com/NJyZvB2 ) OpenCV-day-106. [AKAZE特征与描述子](https://t.zsxq.com/ZVznUV3 ) OpenCV-day-107. [BRISK特征提取与描述子匹配](https://t.zsxq.com/EAyNBIy ) OpenCV-day-108. [特征提取之关键点检测—GFTTDetector](https://t.zsxq.com/UBQBIQj ) OpenCV-day-109. [BLOB特征分析—simpleblobdetector使用](https://t.zsxq.com/VFM3vZ3 ) OpenCV-day-110. [KMeans数据分类](https://t.zsxq.com/vnU7eIA ) OpenCV-day-111. [KMeans图像分割](https://t.zsxq.com/YjMrN7m ) OpenCV-day-112. [KMeans图像分割—背景替换](https://t.zsxq.com/UF23v7y ) OpenCV-day-113. [KMeans图像分割—主色彩提取](https://t.zsxq.com/Fi6aA2B ) OpenCV-day-114. [KNN算法介绍](https://t.zsxq.com/3R3jAI6 ) OpenCV-day-115. [KNN算法应用](https://t.zsxq.com/6uJyfQb ) OpenCV-day-116. [决策树算法介绍与使用](https://t.zsxq.com/FqnQrz7 ) OpenCV-day-117. [图像均值漂移分割](https://t.zsxq.com/IyjuRFa ) OpenCV-day-118. [GrabCut图像分割](https://t.zsxq.com/Yj2jY3B ) OpenCV-day-119. [GrabCut图像分割—背景替换](https://t.zsxq.com/IiuRbUN ) OpenCV-day-120. [二维码检测与识别](https://t.zsxq.com/nqZR3JM ) OpenCV-day-121. [OpenCV DNN 获取导入模型各层信息](https://t.zsxq.com/UrVjUZJ ) OpenCV-day-122. [OpenCV DNN 实现图像分类](https://t.zsxq.com/VvV7EAu ) OpenCV-day-123. [OpenCV DNN 为模型运行设置目标设备与计算后台](https://t.zsxq.com/Fqjm6Eq ) OpenCV-day-124. [OpenCV DNN 基于SSD实现对象检测](https://t.zsxq.com/bEaIQFQ ) OpenCV-day-125. [OpenCV DNN 基于SSD实现实时视频检测](https://t.zsxq.com/IAMNVRv ) OpenCV-day-126. [OpenCV DNN 基于残差网络的人脸检测](https://t.zsxq.com/RjmEamM ) OpenCV-day-127. [OpenCV DNN 基于残差网络的视频人脸检测](https://t.zsxq.com/EMz3bqz ) OpenCV-day-128. [OpenCV DNN 直接调用TensorFlow的导出模型](https://t.zsxq.com/aEUVVFI ) OpenCV-day-129. [OpenCV DNN 调用OpenPose模型实现姿态评估](https://t.zsxq.com/y7mufau ) OpenCV-day-130. [OpenCV DNN 支持YOLO对象检测网络运行](https://t.zsxq.com/QNVbaY3 ) OpenCV-day-131. [OpenCV DNN 支持YOLOv3-tiny版本实时对象检测](https://t.zsxq.com/fAAy3Jy ) OpenCV-day-132. [OpenCV DNN 单张与多张图像的推断](https://t.zsxq.com/VBa2VFm ) OpenCV-day-133. [OpenCV DNN 图像彩色化模型使用](https://t.zsxq.com/NBiaqja ) OpenCV-day-134. [OpenCV DNN ENet实现图像分割](https://t.zsxq.com/VrrfiIu ) OpenCV-day-135. [OpenCV DNN 实时快速的图像风格迁移](https://t.zsxq.com/aIUJAAa ) OpenCV-day-136. [OpenCV DNN 解析网络输出结果](https://t.zsxq.com/i62ZFeI ) OpenCV-day-137. [OpenCV DNN 实现性别与年龄预测](https://t.zsxq.com/uVNVv3B ) OpenCV-day-138. [OpenCV DNN 使用OpenVINO加速](https://t.zsxq.com/qFyFI2F ) OpenCV-day-139. [案例:识别0~9印刷体数字—Part 1](https://t.zsxq.com/QfYJQvn ) OpenCV-day-140. [案例:识别0~9印刷体数字—Part 2](https://t.zsxq.com/bM37mqz ) [二值分析: 车道线检测](https://t.zsxq.com/nMFqNj6 ) 注:本项目不提供课程内容与录音。请各位购买此课程后自行学习。 ## 4. 依赖软件版本 OpenCV: opencv-4.5.5-openvino-2022.1.0, opencv_contrib-4.5.5 FFmpeg: 4.3.1 OpenVINO: 2022.1.0 CUDA: 11.7 CuDNN: 8.5.0 ## 5. 依赖硬件要求 CPU: Intel,x86架构 GPU: NVIDIA,支持CUDA Memory: 不小于4 GB Hard Disc: 不小于20 GB Camera: 个别范例需要通过USB接口连接相机 ## 6. 范例运行环境 OS: Ubuntu 16以上 Python: 3.6以上 ## 7. 范例运行方法 Python File: src/main.py Argument: 范例序号(如001、012、138) ## 8. 大文件获取方法 本项目有6个大小超过100 MB的文件采用Git Large File Storage (LFS)工具存储。以下为这些文件的路径和名称: 1. models/colorization/colorization_release_v2.caffemodel 2. models/faster_rcnn_resnet50_coco/frozen_inference_graph.pb 3. models/openpose/coco/pose_iter_440000.caffemodel 4. models/openpose/hand/pose_iter_102000.caffemodel 5. models/openpose/mpi/pose_iter_160000.caffemodel 6. models/yolov3/yolov3.weights 获取上述大文件有两个方法。 方法一: 以存放本项目文件的文件夹为工作目录,依次输入以下命令获取大文件: git lfs install --skip-smudge # 启动Git LFS,跳过smudge filter git clone [Repository URL] # 克隆Git远程仓库到本地,暂时忽略大文件 git lfs pull # 从远程获取大文件 git lfs install --force # 恢复smudge filter 方法二: 从百度网盘的共享文件夹下载大文件。 Link: https://pan.baidu.com/s/1ItYu53EM-fSH_39VtF0t8Q Password: tf4v ## 9. 许可协议 本项目采用MIT协议进行许可。