原文地址:OpenCV2.3 +python2.7.2编译记录作者:usher
概率图大作业,选了Kalman滤波做视频跟踪的题目,于是又得用到OpenCV了。上网搜到了一份Kalman滤波的代码(一维的,仅仅就是实现了intro里面的例子),但是是python的,考虑怎么把两个结合起来把大作业攒出来。Google了一下,OpenCV居然很久之前就有python接口了!我out了我out了……
看了眼D盘,有个OpenCV2.1的文件夹,但是里面的东西不像是编译好的东东。算了,直接下2.3吧。2.3有superpack版本,但是最后我还是自己用cmake编译了一遍。总体来说,opencv的编译比dcmtk的编译要容易太多了……
环境:OpenCV2.3 Python2.7.2 CMAKE2.8.6 VS2010 Numpy1.6.1 Win7
首先,下载OpenCV2.3,要下载源码包哦。打开CMAKE,把源代码的位置定位到下载下来的文件夹,然后新建一个文件夹作为盛放CMAKE的结果使(文件夹的名字尽量起的普通点,我刚开始起成OpenCV-2.3-built,结果后面编译就出错了……)。点击configure,等config完,选中编译example,然后再点击configure,这时候红色应该都不见了,最后点击generate。等一小会儿,就算生成好CMAKE的结果了。
然后,到新建的那个文件夹下,打开OpenCV.sln,在debug模式下,rebuild整个solution。这时候可能会出错,提示python27_d.lib这个文件有问题。又求助于万能的Google,在csdn上下载了一个,放到python27的lib文件夹下,还是会报错……接着问万能的Google,原来需要把这个文件放到VS2010安装目录下的VClib目录下。然后再编译就成功了,大概124个project吧。紧接着还是在debug下,Build INSTALL这个工程。这时候由于之前我的文件夹命名的问题,有一个工程失败了。不过这都是小问题,改过来就行了。再然后,在Release下再进行一遍以上过程。
最后,首先在环境变量PATH里添加编译好的bin文件夹。紧接着,就是弄python接口了。和OpenCV中文论坛上讲的不同,OpenCV2.3现在不提供interface文件夹下的python安装了,需要你把installpython2.7libsite-package下的文件拷到python27相应的目录下。
大功告成,写一小段测试代码测试下用python读图像、视频吧:
import sys
import cv2
import cv
if __name__ == '__main__':
image = cv2.imread('lena.jpg')
cv.ShowImage('lena',image)
cv.WaitKey(0)
capture = cv.CaptureFromFile('example.avi')
print capture
print cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH)
print cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT)
for i in xrange(10):
frame = cv.QueryFrame(capture)
if frame:
cv.ShowImage('frame',frame)
cv.WaitKey(0)
cv和cv2的区别还没特别明白,需要以后再慢慢折腾啦~
看了眼D盘,有个OpenCV2.1的文件夹,但是里面的东西不像是编译好的东东。算了,直接下2.3吧。2.3有superpack版本,但是最后我还是自己用cmake编译了一遍。总体来说,opencv的编译比dcmtk的编译要容易太多了……
环境:OpenCV2.3 Python2.7.2 CMAKE2.8.6 VS2010 Numpy1.6.1 Win7
首先,下载OpenCV2.3,要下载源码包哦。打开CMAKE,把源代码的位置定位到下载下来的文件夹,然后新建一个文件夹作为盛放CMAKE的结果使(文件夹的名字尽量起的普通点,我刚开始起成OpenCV-2.3-built,结果后面编译就出错了……)。点击configure,等config完,选中编译example,然后再点击configure,这时候红色应该都不见了,最后点击generate。等一小会儿,就算生成好CMAKE的结果了。
然后,到新建的那个文件夹下,打开OpenCV.sln,在debug模式下,rebuild整个solution。这时候可能会出错,提示python27_d.lib这个文件有问题。又求助于万能的Google,在csdn上下载了一个,放到python27的lib文件夹下,还是会报错……接着问万能的Google,原来需要把这个文件放到VS2010安装目录下的VClib目录下。然后再编译就成功了,大概124个project吧。紧接着还是在debug下,Build INSTALL这个工程。这时候由于之前我的文件夹命名的问题,有一个工程失败了。不过这都是小问题,改过来就行了。再然后,在Release下再进行一遍以上过程。
最后,首先在环境变量PATH里添加编译好的bin文件夹。紧接着,就是弄python接口了。和OpenCV中文论坛上讲的不同,OpenCV2.3现在不提供interface文件夹下的python安装了,需要你把installpython2.7libsite-package下的文件拷到python27相应的目录下。
大功告成,写一小段测试代码测试下用python读图像、视频吧:
import sys
import cv2
import cv
if __name__ == '__main__':
image = cv2.imread('lena.jpg')
cv.ShowImage('lena',image)
cv.WaitKey(0)
capture = cv.CaptureFromFile('example.avi')
print capture
print cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH)
print cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT)
for i in xrange(10):
frame = cv.QueryFrame(capture)
if frame:
cv.ShowImage('frame',frame)
cv.WaitKey(0)
cv和cv2的区别还没特别明白,需要以后再慢慢折腾啦~
