python opencv模块(1 图像的载入、显示和保存)

一 入门基础

1 图像读入

cv2.imread(path),读取图像数据,BGR格式,数据在0-255,通道格式为 (W, H, C)

cv2.IMREAD_COLOR: 读入一副彩色图像,图像的透明度会被忽略,默认参数

cv2.IMREAD_GRAYSCALE: 以灰度模式读入图像

调用cv2.imread,就算图像的路径是错的,opencv也不会提醒你,但是得到的img是None

2 显示图像

cv2.namedWindow('Image')创建一个窗口

cv2.imshow()显示图像。窗口会自动调整为图像大小。第一个参数是窗口的名字,第二个参数是要显示的图像。可以创建多个窗口,但是它们必须有不同的名字。

cv2.waitKey()函数是在一个给定的时间内(单位ms)等待用户按键触发,如果没有按键,则继续等待时间结束,如果设置waitKey(0),则表示程序会无限制的等待用户的按键触发。

cv3.destroyAllWindows() 销毁所有窗口

cv2.destroyWindow(name) 销毁指定窗口

在使用cv2.imshow()时,如果图片太大,会显示不全,并且无法调整,因此在cv2.imshow()的前面加上这样的一个语句:

3 保存图像

cv2.imwrite(file, img, num) 保存一个图像。第一个参数是要保存的文件名,第二个是要保存的图形。

第三个是可选参数,针对特定的格式:对于JPEG,其表示的是图像的质量,用0-100的整数表示,默认95;对于png,第三个参数表示的是压缩级别,默认是3。保存成功后会返回True。

cv2.imwrite('001.jpg', img, [int(cv2.IMWRITE_JPEG_QUALITY), 95)]) # 0-100,95是默认值

cv2.imwrite('001.png', img, [int(cv2.IMWRITE_PNG_COMPRESSION), 3]) # 0-9,3是默认值

4 图片操作

1)翻转图像

使用函数cv2.flip(img, flipcode)翻转图像,flipcode控制翻转效果

flipcode=0: 沿着x轴翻转;flipcode>0: 沿着y轴翻转;flipcode<0: x,y轴同时翻转

2)创建 / 复制图像

现在opencv-python绑定,numpy是必须装的。如果要创建图像,需要使用numpy的函数:

emptyImage = np.zeros(img.shape, np.uint8)

在新的opencv-python绑定中,图像使用numpy数组的属性来表示图像的尺寸和通道信息。

也可以复制原有的图形来获得一副新图像:

emptyImage2 = img.copy()

3)颜色空间转换

emptyImage3 = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) # 将彩色图像转为灰度图像

emptyImage4 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 将BGR格式转为RGB

例子:读入衣服图像,按‘s’键保存后退出,其它任何键则直接退出不保存

import cv2
from scipy.misc import imread, imshow

img = cv2.imread('000001.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

cv2.imshow('Image', img)
k = cv2.waitKey(0)

if k == ord('s'):
	cv2.imwrite('/home/lzd/Desktop/test.png', img)
	cv2.destroyAllWindows()
else:
	cv2.destroyAllWindows()

 

你可能感兴趣的:(python opencv模块(1 图像的载入、显示和保存))