第四期 Jupyter 和 OpenCV 实践《显卡就是开发板》

版权声明:本文为aggresss原创文章,未经博主允许不得转载。 作者:[email protected] https://blog.csdn.net/aggresss/article/details/78540513

  第一次使用 Jupyter 时感觉各种不适应,因为用惯了各种IDE,觉得 Jupyter 没有什么使用价值,但在以后的实践中发现了它和IDE的互补之处:
  1.Jupyter设计目的是在交互式计算和软件开发这两个方面最大化的提高生产力。它鼓励一种 执行-探索 的工作模式 ,而不是传统IDE那种 编辑-编译-运行 的传统工作模式, 由于大部分的数据分析代码都含有探索模式操作(试误法和迭代法),因此ipython将有助于提高你的工作效率。
  2. 非常好的展示效果,使用Markdown的语法方式,可以在文档中如入代码并且可执行,如果想讲解并演示一个主题,一个ipynb 文件就可以解决,省去了PPT的制作。
  这一期我来演示一下,通过Jupyter和OpenCV提供的Python接口,如何敏捷的了解掌握和验证一个库(OpenCV),OpenCV 默认使用CMAKE来编译,搭建实验环境,往往就需要很多时间,如果使用Python接口就会省去很多步骤,当然如果你只是想演示和验证的话。
安装OpenCV库

pip install opencv-python

启动jupyter notebook

jupyter notebook

所有演示代码可以通过github获取

git clone https://github.com/aggresss/GPUDemo

这一期的演示代码链接 https://github.com/aggresss/GPUDemo/blob/master/opencv_demo.ipynb

通过以下代码 可以迅速的验证OpenCV的面部识别功能

%matplotlib inline
import numpy as np
from matplotlib import pyplot as plt
import cv2

font = cv2.FONT_HERSHEY_SIMPLEX
face_cascade = cv2.CascadeClassifier('./haarcascade_frontalface_default.xml')
img = cv2.imread('italy_worldcup.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for index in range(faces.shape[0]):
    (x,y,w,h) = faces[index]
    # draw rectangle
    cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
    # draw index 
    cv2.putText(img, str(index), (x+5,y-5), font, 0.75, (0,255,0), 2, cv2.LINE_AA)
    roi_gray = gray[y:y+h, x:x+w]
    roi_color = img[y:y+h, x:x+w]

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.figure(dpi=150)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
plt.show()

  Ctrl+enter 执行后就可以看到图片中的面部都被标示出来。使用Jupyter+Python接口 的优势立刻就能展现出来,只需几秒钟,就能实验验证,省去了编译再编译的过程。
这里写图片描述

备注: italy_worldcup.jpg图片和 haarcascade_frontalface_default.xml 文件下载:
  https://github.com/aggresss/GPUDemo

猜你喜欢

转载自blog.csdn.net/aggresss/article/details/78540513
今日推荐