第四期 Jupyter 和 OpenCV 实践《显卡就是开发板》
来源:互联网 发布:主力资金监控软件 编辑:程序博客网 时间:2024/06/09 19:28
第一次使用 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 inlineimport numpy as npfrom matplotlib import pyplot as pltimport cv2font = cv2.FONT_HERSHEY_SIMPLEXface_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 axisplt.show()
Ctrl+enter 执行后就可以看到图片中的面部都被标示出来。使用Jupyter+Python接口 的优势立刻就能展现出来,只需几秒钟,就能实验验证,省去了编译再编译的过程。
备注: italy_worldcup.jpg图片和 haarcascade_frontalface_default.xml 文件下载:
https://github.com/aggresss/GPUDemo
- 第四期 Jupyter 和 OpenCV 实践《显卡就是开发板》
- 第十期 使用 Keras 和 Flask 构建一个在线 API 《显卡就是开发板》
- 第一期 实验环境搭建 《显卡就是开发板》
- 第二期 Tensorflow 基准测试 《显卡就是开发板》
- 第七期 使用 Keras 演示神经网络 《显卡就是开发板》
- 第八期 使用 Keras 训练神经网络 《显卡就是开发板》
- 第四期 JTAG接口和TTL接口 《路由器就是开发板》
- 第五期 基于模拟器上的实践和学习规划 《手机就是开发板》
- 目录 《显卡就是开发板》
- 第三期 利用已经训练的神经网络进行图像识别 《显卡就是开发板》
- 第五期 基于 Inception-V3 重新训练网络 《显卡就是开发板》
- 第六期 基于 Inception-V3 训练网络识别面部特征 《显卡就是开发板》
- 第九期 使用 Keras 在游戏中实现自动驾驶 《显卡就是开发板》
- 第四期 Android Studio 开发环境搭建 《手机就是开发板》
- 第四期 QEMU调试Linux内核实验 《虚拟机就是开发板》
- 第一期 前言 《路由器就是开发板》
- 第三期 约定 《路由器就是开发板》
- 第一期 前言 《手机就是开发板》
- Yarn(分布式协作服务)和Zookeeper(分布式资源管理器)之间的关系
- Thread、Handler与HandlerThread、Handler使用
- Ubuntu安装keras模块
- SQL Server中row_number的用法
- 图形数据库Neo4j
- 第四期 Jupyter 和 OpenCV 实践《显卡就是开发板》
- SearchView全面解锁
- shell使用技巧echo
- java抽象类和接口
- SpringMVC上传图片总结(1)---常规方法进行图片上传,使用了MultipartFile、MultipartHttpServletRequest
- dubbo-8 sonaqube代码质量管理的安装和使用
- Android本地数据AES加密,使用AndroidKeyStore
- 极大似然估计和贝叶斯估计
- HashMap和Hashtable的区别