vs2013在图像处理中的应用(6):使用OpenCV进行图像处理

快乐虾

http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)

欢迎转载,但请保留作者信息



很久没有摸图像处理的东西了,近期刚好需要有此需求,希望能够有一个比较好用的开发环境。在学校的时候做图像处理一直用的是matlab,不过现在正好在做VELT的开发,尝试用vs2013+python构造一个适合于自己用的开发环境。



opencv是一个用于图像处理的强大工具,考虑到python的支持,我们选择2.4.11版本,而不是最新的3.x版本。


1  opencv_python安装


opencv的封装有两个库,一个是opencv_python,另一个是pyopencv,我们选择第一个,在网上找一个编译好的库。


opencv_python-2.4.11-cp27-none-win32.whl


在命令行下用pip安装:


更新一下PTVSIntelliSense


2  测试opencv_python的安装


简单测试一下opencv_python的安装:


很正常地显示我们想要的图片:


3  编译opencv源码


因为我们的目标是图像处理,自然少不了学习下opencv的源码,首先编译它。


首先用cmake生成opencv的工程文件。

vs2013在图像处理中的应用(6):使用OpenCV进行图像处理_第1张图片


然后打开build目录下的OpenCV.sln编译就可以了。


只是在编译opencv_python的时候由于Python安装的是Release版本,因此opencv_python只能够使用Release版本,不能用Debug版本,否则有链接错误。


4  读取视频测试


接下来试试用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() #获取下一帧

很正常地播放视频。


5  代码调试


PTVS具有与matlab类似的调试手段,可以支持中断时对当前变量进行修改,也可以运行脚本。仍以上述读取视频的代码为例。

vs2013在图像处理中的应用(6):使用OpenCV进行图像处理_第2张图片


在中断后可以很直观地看到变量的内容,也可以进行修改。


打开Python Debug Interactive可以执行python脚本对当前环境进行修改。

vs2013在图像处理中的应用(6):使用OpenCV进行图像处理_第3张图片



需要注意的是PTVS有两个交互窗口,另一个是PythonInteractive,这个是非调试的交互窗口,是不能访问当前测试代码的。











你可能感兴趣的:(python,图像处理,VS2013)