图像处理基础操作
1.读取图像
openCV提供了函数cv2.imread()来读取图像,该图像支持各种静态图像格式。
语法格式:retval=cv2.imread(filename,flags)
- retval是返回值,其值是读取到的图像
- filename是待读取图像的完整路径名
- flags是读取标记,用来控制读取文件的类型,,默认值为1
常见的读取类型有:
1.保持原格式不变:cv2.IMREAD_UNCHANGED;数值:-1
2.将图像调整为单通道的灰度图像:cv2.IMREAD_GRAYSCALE;数值:0
3.将图像调整为3通道的BGR图像:cv2.IMREAD_COLOR;数值:1
演示代码:
import cv2 #导入模块
lena=imread('D:\study_opencv\chapter1\lena.jpg') #读取图像
print(lena)
展示结果:
当使用print()打印图像时,打印的是读取图像的像素值,而非我们肉眼看到的图像。
2.显示图像
在openCV中使用cv2.imshow()函数来显示图像。
语法格式:None=cv2.imshow(‘winname’,mat)
- winname是创建显示图像窗口的窗口名,不支持中文
- mat是待显示图像
演示代码:
import cv2
#读取原始图像
lena=cv2.imread('D:\study_opencv\chapter1\lena.jpg')
#将原始图像调整为单通道的灰度图像并读取
lenagray=cv2.imread('D:\study_opencv\chapter1\lena.jpg',0)
#显示图像
cv2.imshow('lena',lena)
cv2.imshow('lenagray',lenagray)
#创建显示窗口,按任意键销毁窗口
cv2.waitKey()
cv2.destroyAllWindows()
展示结果:
3.保存图像
在openCV中,使用cv2.imwrite()函数来保存图像。
语法格式:retval=cv2.imwrite(filename,img)
- retval是返回值,是一个bool类型,如果图像保存成功就返回Ture,否则为False。
- filename是要保存的目标文件的完整路径名,包括文件的扩展名。
演示代码:
#导入模块
import cv2
#读取原始图像,并将原始图像调整为灰度图
lenagray=cv2.imread('D:\study_opencv\chapter1\lena.jpg',0)
#保存图像,并以lenagray的文件名保存
retval=cv2.imwrite('D:\study_opencv\chapter1\lenagray.jpg',lenagray)
#打印retval的值,若图像保存成功为Ture,否则为False
print(retval)
展示结果:
可见打印的retval的结果为Ture,说明图片保存成功,而在文件夹chapter1中多了一张名为lenagray的图片。