您的位置:首页 > 编程语言 > Python开发

【Python版】OpenCV学习笔记(2):读取和写入图像

2017-08-24 17:04 716 查看
声明:文章内容来自于博主学习《Python计算机视觉》一书。

前言

OpenCV 自带读取写入图像函数以及矩阵操作数学库

读取和写入图像

下面一个简短的例子将载入一张图像,打印出图像大小,对图像进行转换并保存为.png格式:

# -*- coding:utf-8 -*-
'''
author: xuna
ubuntu: 16.04
python: 2.7
OpenCV: 3.2.0
'''
import cv2

#读取图像
im = cv2.imread('/home/xuna/桌面/笔记/1.jpg')
h,w = im.shape[:2]
print h,w

#保存图像
cv2.imwrite("/home/xuna/桌面/笔记/result.png",im)


imread()函数

返回图像为一个标准的Num数组,并且能处理很多不同格式的图像。

颜色空间

在OpenCV中,图像是按照BRG顺序(即RGB的倒序)存储的。读取图像时默认的是BGR。其中函数cvtColor()来实现颜色的空间转换。

将原图像转换为灰度图像:

#读取图像
im = cv2.imread('/home/xuna/桌面/笔记/1.jpg')
#创建灰度图像
gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)


cv2.COLOR_BGR2GRAY :

将BGR彩色图像转化为灰度图像。

cv2.COLOR_BGR2RGB

将BGE彩色图像转换为RGB彩色图像。

cv2.COLOR_GRAY2BGR

将灰度图像转化为BGR彩色图像。

显示图像及结果

使用OpenCV绘制功能和窗口功能显示结果。

第一个小例子从文件中读取一幅图像,并创建一个整数图像表示:

# -*- coding:utf-8 -*-
'''
author: xuna
ubuntu: 16.04
python: 2.7
OpenCV: 3.2.0
'''
import cv2

#读取图像
im = cv2.imread('/home/xuna/桌面/笔记/1.jpg')

#创建灰度图像
gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)

#计算积分图像
intim = cv2.integral(gray)

#归一化并保存
intim = (255.0*intim) / intim.max()
cv2.imwrite("/home/xuna/桌面/笔记/result.png",intim)


读取图像,转化为灰度图像,通过函数integral()创建一幅图像,该图像的像素值为原图上方和左边强度值相加后的结果。保存图像前,通过除以图像中的像素最大值将其归一到0~255之间,这对于快速评估特质是一个非常有用的技巧。



图1:用OpenCV的integral()函数计算积分图像
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: