简介Opencv在Python中的使用
来源:互联网 发布:大数据o2o概念股龙头 编辑:程序博客网 时间:2024/06/04 19:26
OpenCV是一个C++库,用于实时处理计算机视觉方面的问题,涵盖了很多计算机视觉领域的模块。
OpenCV有两个Python接口,老版本的cv模块使用OpenCV内置的数据类型,新版本的cv2模块使用NumPy数组。对于新版本的模块,可以通过下面方式导入:
import cv2
而老版本的模块则通过下面方式导入:
import cv2.cv
1.1 在Python中配置opencv
Windows下Python安装OpenCV详细步骤
本机Win7,Python3.5,OpenCV2.4.9
将D:\OpenCV\opencv\build\python\2.7\x86
下的cv2.pyd文件copy到D:\Python\Python35-32\Lib\site-packages
文件夹中。
出现错误:
尽管有博客言之:目前opencv只支持python2.6和python2.7,不死心,终于被我发现了下面这个博客: win7 64位 python3.4&opencv3.0配置安装教程
- 找到指定的版本,下载相应的opencv:Opencv下载网址
- 使用pip安装
pip install *.whl
- 测试,安装成功!
1.2 读取、写入图像
下面是一个简单地载入图像、打印尺寸,保存图像的例子:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import cv2# 载入图像im = cv2.imread('./0.png')# 打印图像尺寸h,w = im.shape[:2]print(h,w)# 保存PNG格式图像为JPEG格式cv2.imwrite('./0.jpg',im)
1.3 颜色空间转换
在OpenCV中,图像不是用常规的RGB颜色通道来存储的,他们用的顺序是BGR顺序。当读取一幅图像后,默认的是BGR,不过有很多转换方式可以利用。颜色空间转换函数可以用cvtColor()完成。
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import cv2# 载入图像im = cv2.imread('./2.png')print(im.shape)# create a grayscale versiongray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)print(gray.shape)
结果为:
1.4 显示图像
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import cv2# from matplotlib import pyplot as pltfrom pylab import *# 添加中文字体支持from matplotlib.font_manager import FontPropertiesfont = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc",size = 14)# 载入图像im = cv2.imread('Middlebury_01_clean_color.png')# 颜色空间转换gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)# 显示原始图像fig = plt.figure()subplot(121)plt.gray()imshow(im)title(u'彩色图', fontproperties= font)axis('off')# 显示灰度化图像plt.subplot(122)plt.gray()imshow(gray)title(u'灰度图', fontproperties= font)axis('off')show()
显示结果:
、
参考链接:Python计算机视觉编程
5 0
- 简介Opencv在Python中的使用
- sqlite数据库在Python中的使用简介
- Python opencv在python中的配置
- 在python中使用OpenCV
- OpenCv在Qt中的使用
- OpenCv在Qt中的使用
- OpenCV在MFC中的使用
- opencv在Qt中的使用
- opencv在eclipse中的使用
- opencv在python上的使用
- Raspberry Pi OpenCV,在树莓派上使用python opencv
- 【OpenCV】calcHist在直方图中的使用
- ubuntu下opencv在Qt中的使用
- ubuntu下opencv在Qt中的使用
- getopt在Python中的使用
- pdf2htmlex在python中的使用
- Protobuf在Python中的使用
- getopt在Python中的使用
- Beam学习笔记(3):Flink Streaming Pipeline Translator
- HDU 3697 A hard Aoshu Problem (搜索)
- 《Redis实战》读后感
- Windows下安装TensorFlow
- 浅析name==null, "".equals(name)和name.length==0三者的区别
- 简介Opencv在Python中的使用
- c++单元测试框架Catch
- 顺序表(约瑟夫环)
- Kotlin初探
- poj 1141Brackets Sequence
- C++面试之GetMemory问题
- Nim游戏博弈(收集完全版)
- Flink容错机制源码分析
- what is a processor (上)