OpenCV是Intel®开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。
在这篇文章(译自 http://glowingpython.blogspot.com/2011/10/beginning-with-opencv-in-python.html) 中将介绍如何使用 Python 版的 OpenCV。
下面的代码打开磁盘中的图片,打印一些图片属性,并在一个窗口中显示这个图片:# load and show an image in gray scale image = cv.LoadImage('ariellek.jpg',cv.CV_LOAD_IMAGE_GRAYSCALE) # print some image properties print 'Depth:',image.depth,'# Channels:',image.nChannels print 'Size:',image.width,image.height print 'Pixel values average',cv.Avg(image) # create the window cv.NamedWindow('my window', cv.CV_WINDOW_AUTOSIZE) cv.ShowImage('my window', image) # show the image cv.WaitKey() # the window will be closed with a (any)key press我使用的是下面这张图片
Depth: 8 # Channels: 1 Size: 366 550 Pixel values average (80.46735717834079, 0.0, 0.0, 0.0)现在可对图片更改其大小
# resize the image dst = cv.CreateImage((150,150), 8, 1) cv.Resize(image,dst,interpolation=cv.CV_INTER_LINEAR) cv.ShowImage('my window', dst) cv.WaitKey() cv.SaveImage('image2.jpg', dst) # save the image结果是:
# Sobel operator dstSobel = cv.CreateMat(image.height, image.width, cv.CV_32FC1) cv.Sobel(image,dstSobel,1,1,3) cv.ShowImage('my window', dstSobel) cv.WaitKey() cv.SaveImage('imageSobel.jpg', dstSobel)运行结果:
# image smoothing and subtraction imageBlur = cv.CreateImage(cv.GetSize(image), image.depth, image.nChannels) # filering the original image cv.Smooth(image, imageBlur, cv.CV_BLUR, 15, 15) diff = cv.CreateImage(cv.GetSize(image), image.depth, image.nChannels) # subtraction (original - filtered) cv.AbsDiff(image,imageBlur,diff) cv.ShowImage('my window', diff) cv.WaitKey() cv.SaveImage('imageDiff.jpg', diff)运行结果:
"那我也贴一个用wxwidgets使用opencv的小demo
<a href=""http://larryo.org/work/information/wxopencv/index.html"" target=""_blank"" rel=""nofollow"">http://larryo.org/work/information/wxopencv/index.html
######一个小提示,在python里用OpenCV提供的Python模块的时候,需要先安装Numerical Python,否则可能会发生import错误,错误内容一般是:numpy.core.multiarray failed to import."
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。