快乐虾
http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)
欢迎转载,但请保留作者信息
很久没有摸图像处理的东西了,近期刚好需要有此需求,希望能够有一个比较好用的开发环境。在学校的时候做图像处理一直用的是matlab,不过现在正好在做VELT的开发,尝试用vs2013+python构造一个适合于自己用的开发环境。
opencv是一个用于图像处理的强大工具,考虑到python的支持,我们选择2.4.11版本,而不是最新的3.x版本。
对opencv的封装有两个库,一个是opencv_python,另一个是pyopencv,我们选择第一个,在网上找一个编译好的库。
opencv_python-2.4.11-cp27-none-win32.whl
在命令行下用pip安装:
更新一下PTVS的IntelliSense。
简单测试一下opencv_python的安装:
很正常地显示我们想要的图片:
因为我们的目标是图像处理,自然少不了学习下opencv的源码,首先编译它。
首先用cmake生成opencv的工程文件。
然后打开build目录下的OpenCV.sln编译就可以了。
只是在编译opencv_python的时候由于Python安装的是Release版本,因此opencv_python只能够使用Release版本,不能用Debug版本,否则有链接错误。
接下来试试用python读取一段视频并显示。测试用的f:\tmp\test.mp4是一段h264编码的视频:
我们用python读取并显示:
# -*- coding: utf-8 -*- import cv2 #获得视频的格式 videoCapture = cv2.VideoCapture(‘f:\\tmp\\test.mp4‘) #获得码率及尺寸 fps = videoCapture.get(cv2.cv.CV_CAP_PROP_FPS) size = (int(videoCapture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)), int(videoCapture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))) #读帧 success, frame = videoCapture.read() while success : cv2.imshow("Video", frame) #显示 cv2.waitKey(1000/int(fps)) #延迟 success, frame = videoCapture.read() #获取下一帧
很正常地播放视频。
PTVS具有与matlab类似的调试手段,可以支持中断时对当前变量进行修改,也可以运行脚本。仍以上述读取视频的代码为例。
在中断后可以很直观地看到变量的内容,也可以进行修改。
打开Python Debug Interactive可以执行python脚本对当前环境进行修改。
需要注意的是PTVS有两个交互窗口,另一个是PythonInteractive,这个是非调试的交互窗口,是不能访问当前测试代码的。
vs2013在图像处理中的应用(6):使用OpenCV进行图像处理
原文地址:http://blog.csdn.net/lights_joy/article/details/45851165