Opencv基础使用1——分割 - 视频人像跟踪

举报
墨理学AI 发表于 2022/01/10 22:57:33 2022/01/10
【摘要】 opencv-master 4.5.1 - Python 示例代码运行测试 ( 一 ) | 分割 - 视频人像跟踪 文章目录 环境搭建opencv-master4.5.1 Python...

opencv-master 4.5.1 - Python 示例代码运行测试 ( 一 ) | 分割 - 视频人像跟踪


环境搭建


系统环境 【 这里是用的 Linux 虚拟机 】


cat /etc/issue

Ubuntu 20.04.2 LTS \n \l


  
 
  • 1
  • 2
  • 3
  • 4
  • 5

conda 新建独立环境如下:

conda create -n py369 python=3.6.9

conda activate py369

pip install opencv-python

pip install matplotlib 

pip install numpy


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

运行环境 pip list 如下:


pip list

Package         Version
--------------- -------------------
certifi         2020.12.5
cycler          0.10.0
kiwisolver      1.3.1
matplotlib      3.3.4
numpy           1.19.5
opencv-python   4.5.1.48
Pillow          8.2.0
pip             21.0.1
pyparsing       2.4.7
python-dateutil 2.8.1
setuptools      52.0.0.post20210125
six             1.15.0
wheel           0.36.2


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

opencv-master4.5.1源码下载地址

其它版本下载地址:https://github.com/opencv/opencv/releases

  • 本博文的测试是直接拉取 opencv-master4.5.1,然后在opencv/samples/python/tutorial_code/ImgTrans 目录下对相应 py 文件进行测试

0-9


opencv-master4.5.1 Python 边缘检测算子测试


测试所输入数据

  • opencv-master4.5.1/opencv/samples/data 目录下有测试可用数据

lena.jpg 原图:

cd pyOpenCVLearn/opencv/samples/python

cp opencv/samples/data/lena.jpg .

  
 
  • 1
  • 2
  • 3

0-0

Sobel 算子

cd pyOpenCVLearn/opencv/samples/python/tutorial_code/ImgTrans/SobelDemo

python sobel_demo.py ../../../lena.jpg 

  
 
  • 1
  • 2
  • 3

运行效果如下:
1-0

LaPlace 算子

cd pyOpenCVLearn/opencv/samples/python/tutorial_code/ImgTrans/LaPlace

python laplace_demo.py ../../../lena.jpg 

  
 
  • 1
  • 2
  • 3

1-1

canny 算子 detector


cd pyOpenCVLearn/opencv/samples/python/tutorial_code/ImgTrans/canny_detector

python CannyDetector_Demo.py --input ../../../lena.jpg 

  
 
  • 1
  • 2
  • 3
  • 4

运行效果如下:

1-2


图像分割测试


Code for Image Segmentation with Distance Transform and Watershed Algorithm

cd opencv/samples/python/tutorial_code/ImgTrans/distance_transformation

python imageSegmentation.py --input ../../../../data/cards.png 

  
 
  • 1
  • 2
  • 3

效果如下:
2-2


计算 视频帧的 PSNR 、SSIM


这个代码感觉对于 超分重建 PSNR 计算还是有些许参考价值的;

cd opencv/samples/python/tutorial_code/videoio

python video-input-psnr-ssim.py -r ../../../data/Megamind.avi -t ../../../data/Megamind_bugy.avi 


  
 
  • 1
  • 2
  • 3
  • 4

输出大致如下:

Frame: 0# 0dB 
Frame: 1# 41.279dB 
Frame: 2# 41.354dB 
Frame: 3# 41.201dB 
Frame: 4# 41.043dB 
Frame: 5# 19.214dB MSSISM: R 94.69% G 93.39% B 90.06% 
Frame: 6# 40.818dB 
Frame: 7# 41.046dB 
Frame: 8# 40.919dB 
Frame: 9# 41.166dB 
Frame: 10# 15.832dB MSSISM: R 93.17% G 91.99% B 88.64% 
Frame: 11# 40.767dB 
Frame: 12# 41.016dB 
Frame: 13# 40.746dB 
Frame: 14# 41.186dB 
Frame: 15# 40.297dB 
Frame: 16# 40.44dB 
Frame: 17# 40.97dB 
Frame: 18# 40.846dB 
Frame: 19# 40.727dB 
Frame: 20# 22.09dB MSSISM: R 94.64% G 93.88% B 90.64% 
Frame: 21# 40.953dB 
Frame: 22# 40.845dB 
Frame: 23# 40.894dB 
Frame: 24# 40.776dB 
Frame: 25# 22.021dB MSSISM: R 93.1% G 91.86% B 89.21% 
Frame: 26# 40.067dB 
Frame: 27# 39.661dB 
Frame: 28# 39.176dB 
Frame: 29# 39.289dB 
Frame: 30# 21.877dB MSSISM: R 90.4% G 88.64% B 86.24% 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

Background subtraction method(视频人像跟踪 - 背景提取)


cd opencv/samples/python/tutorial_code/video/background_subtraction

python bg_sub.py --input ../../../../data/vtest.avi 

  
 
  • 1
  • 2
  • 3

效果如下:

5-1

# Background subtraction method (KNN, MOG2)
# 算法设置为 KNN 测试如下: 

python bg_sub.py --input ../../../../data/vtest.avi --algo KNN

  
 
  • 1
  • 2
  • 3
  • 4

5-2


基于颜色分布的连续自适应均值漂移【跟踪】算法(camshift algorithm)


有兴趣了解这个算法可以自行检索该算法相关文献:

例如:基于Camshift算法的小球跟踪

脚本运行输入

输入是一个 mp4 需要自行点击下载

运行代码如下:

# 下载的 mp4  文件 copy 到 opencv/samples/data/ 目录下

cp slow_traffic_small.mp4  opencv/samples/data/


cd opencv/samples/python/tutorial_code/video/meanshift

# 运行输入如下:

python camshift.py ../../../../data/slow_traffic_small.mp4

# 另外一个 meanshift.py 脚本也可以运行测试:

python meanshift.py ../../../../data/slow_traffic_small.mp4


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

运行效果如下:

5-3


Lucas-Kanade Optical Flow calculation【光流计算跟踪】


运行代码如下:

cd opencv/samples/python/tutorial_code/video/optical_flow

python optical_flow.py ../../../../data/slow_traffic_small.mp4


  
 
  • 1
  • 2
  • 3
  • 4

运行效果如下:

5-5

运行代码如下:

cd opencv/samples/python/tutorial_code/video/optical_flow

# 需要 把 vtest.avi copy 到当前目录作为默认输入
cp ../../../../data/vtest.avi .

python optical_flow_dense.py


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

效果如下:

5-6


This program demonstrates line finding with the Hough transform【使用霍夫变换进行寻线的过程】


运行代码如下:


cd  /opencv/samples/python/tutorial_code/ImgTrans/HoughLine

# 把 opencv-master4.5.1\opencv\samples\data 目录下 代码使用的 数据 copy 到 当前目录
cp ../../../../data/sudoku.png .

python hough_lines.py

# 或者另一个 方法

cd ../HoughCircle/

cp ../../../../data/smarties.png .



  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

运行效果如下:

6-1

6-2


Sample code that shows the functionality of copyMakeBorder【检测 图像边框】


运行代码如下:


cd opencv/samples/python/tutorial_code/ImgTrans/MakeBorder

cp ../../../../data/lena.jpg .

python copy_make_border.py 



  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

效果如下:

7-1


镜像 翻转


运行代码如下:


cd opencv/samples/python/tutorial_code/ImgTrans/remap

python Remap_Demo.py --input ../../../../data/chicky_512.png


  
 
  • 1
  • 2
  • 3
  • 4
  • 5

效果如下:

7-2


图像变形 – 旋转角度


运行代码如下:

cd opencv/samples/python/tutorial_code/ImgTrans/warp_affine

python Geometric_Transforms_Demo.py --input ../../../../data/lena.jpg 

  
 
  • 1
  • 2
  • 3

效果如下:

7-3


文章来源: positive.blog.csdn.net,作者:墨理学AI,版权归原作者所有,如需转载,请联系作者。

原文链接:positive.blog.csdn.net/article/details/117224999

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200