1.读取图像
image = cv2.imread(“filename”,flags)
**filename:**是要读取图像的完整文件名,要用双引号括起来,并且读取的路径中不能出现中文
**flags:**读取图像颜色类型的标记
flags讲解
当值为1 | 是默认值,表示读取的是彩色图像,此时的flags值可以省略 |
---|---|
当值为0 | 表示读取的是灰度图像(如果读取的是彩色图像,则将其转换为彩色图像对应的灰度图像) |
灰度图像是一种每个像素都是从黑到白,被处理为256个灰度级别的单色图像,256个灰度级别分别用0(纯黑色)–255(纯白色)的数值表示
案例
import cv2
image = cv2.imread("C:/Users/hanhan/Desktop/image/1.jpg",1)
print(image) #我们输出的矩阵值,并不会显示图像
2.显示图像
cv2.imshow(winname,mat)
**winname:**显示图像的窗口名称,要用引号括起来
**mat:**要显示的图像
retval = cv2.waitKey(delay)
waitKey()方法用于等待用户按下键盘上的按键时间,当用户按下键盘上的任意按键时,将执行waitKey()方法,并且获取waitKey()方法的返回值
retval:按键对应的ASCLL码,例如ESC按键的ASCLL是27,当用户按下ESC,waitKey()返回值是27,如果没有按键被按下,waitkey()方法的返回值是-1
delay: 等待用户按下键盘上按键的时间,单位是毫秒,当delay是负数,0或空时,表示无限等待用户按下键盘上的按键的时间
cv2.destroyAllWindows()
该方法用于销毁所有的正在显示的图像的 窗口,
案例:按下任意键关闭窗口
import cv2
image = cv2.imread("C:/Users/hanhan/Desktop/image/1.jpg",1)
cv2.imshow("ttitle",image) #title1是窗口的名字
cv2.waitKey()
cv2.destroyAllWindows()
显示图像的窗口名称不能使用中文,否则名称会出现乱码
为了能够正常显示图像,要在cv2.imshow()之后紧跟着cv2.waitKey()
设置窗口显示的时间为5s
cv2.waitKey(5000)#1000ms为1s
3.保存图像
cv2.imwrite("路径名/图像名.jpg",image)
image:我们操作的图像
案例
import cv2
image = cv2.imread("C:/Users/hanhan/Desktop/image/1.jpg",0)
cv2.imshow("e",image)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.imwrite("C:/Users/hanhan/Desktop/lu/2.jpg",image) #注意路径使用的是"/"
4.获取图像属性
我们将学习三个属性,shape,size,dtype这个三个属性
shape:
如果是彩色图像,那么获取的是一个包含图像的水平像素,垂直像素,和通道数的数组即**(垂直像素,水平像素,通道数)**。
如果是灰度图像,那么获取的是一个包含图像的水平像素和垂直像素的数组即**(垂直像素,水平像素)**
垂直像素指的是垂直方向上的像素(宽),水平像素指的是水平方向上的像素(高)
size:获取的是图像包含的像素个数,其值为“水平像素X垂直像素*X通道数”.灰度图像的通道数为1
dtype:获取的是图像的数据类型
案例
import cv2
image = cv2.imread("C:/Users/hanhan/Desktop/image/1.jpg",0)
cv2.imshow("e",image)
cv2.waitKey()
cv2.destroyAllWindows()
#获取图像的形状
image.shape
#获取图像的大小
image.size
3获取图像的数据类型
image.dtype
roi
也就是我们感兴趣的区域
import cv2
import numpy as np
img=cv2.imread('/home/duan/workspace/opencv/images/roi.jpg')
ball=img[280:340,330:390] #定位到图像上我们感兴趣的区域
img[273:333,100:160]=ball
#该图像的眼睛部位是我们你感兴趣的
注意
/ 和
\\
是等价的