目录
1、img = cv2.imread(img_path,flag)
3、key = cv2.waitKey(millseconds) & 0xFF
4、cv2.destroyAllWindows(window_name)
5、cv2.imwrite(img_save_path_and_name,img)
6、image = cv2.cvtColor(img ,flag)
1、img = cv2.imread(img_path,flag)
- img_path:图片的路径,错误的话就返回None
- flag:cv2.IMREAD_COLOR(读取彩色图片,图片的透明性被返回,为默认参数,也可传入1)
- flag:cv2.IMREAD_GRAYSCALE(按灰度模式读取图片,也可传入0)
- flag:cv2.IMREAD_UNCHANGED(读取图像包括alpha通道,也可传入-1)
2、cv2.imshow(window_name,img)
- window_name:显示图片窗口的名字
- img:显示图片的对象
- 可以指定多个窗口名称,显示多张图片
3、key = cv2.waitKey(millseconds) & 0xFF
- 键盘绑定事件,阻塞监听键盘按键,返回一个数字(每个按键对应一个ascll码)
- millseconds:传入的时间(毫秒数),在该时间里面等待键盘按键,到时间直接关闭窗口;当参数为0时,会一直等待
4、cv2.destroyAllWindows(window_name)
- window_name:需要关闭窗口的名字,没有的话就全部关闭
5、cv2.imwrite(img_save_path_and_name,img)
- img_save_path_and_name:保存文件的路径包括文件名和格式
- img:文件保存的对象
6、image = cv2.cvtColor(img ,flag)
- 对读入的图片进行处理
- img:处理图片的对象
- flag:主要有:BGR和灰度图的转换使用 cv2.COLOR_BGR2GRAY
- flag:主要有:BGR和HSV的转换使用 cv2.COLOR_BGR2HSV,HSV空间比在BGR空间中更容易表示一个特定的颜色
使用这个代码可以知道所有的flag
import cv2
import numpy as np
flags = [i for i in dir(cv2) if i.startswith('COLOR_')]
print(flags)
建议:
对于窗口显示,你还是可以先创建一个窗口,之后再加载一个图片。在这种情况下,你可以决定窗口是否可以调整大小。但是,应当注意的是,这个函数的意思是:你已经完成对一个图片的处理了,然后在最后显示的时候是把整张图片都输出来的,要是和原来的像素值对不上的话,就会当场压扁或者拉长,不会对图片进行截取。
当图像的维度太大或者添加轨迹条时,会很有用。
使用到的函数是 :
cv2.namedWindow( image_window_name , cv2.WINDOW_NORMAL )
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.resizeWindow('image',200,500)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
代码实例1:
import cv2
img = cv2.imread('head.png')
img_grey = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow('img',img)
cv2.imshow('img_grey',img_grey)
key = cv2.waitKey(0) & 0xFF
#一般是64位系统的话最好加上 & 0xFF
if key == ord('q'):
#或者这里直接把ord(‘q’)变成27(ascll码表示的数字的)
print(key)
cv2.destroyAllWindows()
elif key == ord('b'):
print(key)
cv2.imwrite('head.jpg',img_grey)
代码实例2(matlibplot):
#coding:utf-8
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('head.png')
#读取图片(cv2默认读入BGR格式)
img_bgr_grey = cv2.imread('head.png',0)
#读取图片(BRG的灰度格式)
img_rgb = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
#将BGR格式的图片转化成RGB格式
plt.subplot(141)
plt.title('BGR')
plt.imshow(img)
plt.subplot(142)
plt.title('BGR(grey)')
plt.imshow(img_bgr_grey)
plt.subplot(143)
plt.title('RGB')
plt.imshow(img_rgb)
plt.subplot(144)
plt.title('RGB(grey)')
plt.imshow(img_bgr_grey , cmap='gray',interpolation='bicubic')
#bicubic interpolation:[数] 双三次插值
#要是不想要坐标系,就加上plt.xticks([]),plt.yticks([])
plt.show()