OpenCV 对图像进行处理时,常用API如下:
| API | 描述 | 
|---|---|
| cv.imread | 根据给定的磁盘路径加载对应的图像,默认使用BGR方式加载 | 
| cv.imshow | 展示图像 | 
| cv.imwrite | 将图像保存到磁盘中 | 
| cv.waitKey | 暂停一段时间,接受键盘输出后,继续执行程序 | 
| cv.destroyAllWindows | 释放所有资源 | 
目录
- 一. OpenCV 基本操作函数
- 1. cv.imread ( ) 图像读取
- 2. cv.imshow ( ) 图像显示
- 2.1 cv.imshow ( ) 展示全部
- 2.2 cv.imshow ( ) 展示部分
- 2.3 plt.imshow ( ) 图像显示
- 方式一 指定通道
- 方式二 cv.cvtColor ( )
 
 
- 3. cv.waitKey ( ) 图像暂停时间
- 4. cv.destroyAllWindows ( ) 释放资源
 
一. OpenCV 基本操作函数
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
'''设置不使用科学计数法'''
# 保留小数点后三位
# 设置不适用科学计数法
np.set_printoptions(precision=3, suppress=True)
1. cv.imread ( ) 图像读取
	cv2.imread(filepath,flags)
	参数:	
		filepath:要读入图片的完整路径
		flags:读入图片的标志,即默认是使用BGR模型加载图像
			   当设置为0时,表示灰度图像加载
			   当设置为1时,表示加载BGR图像, 默认为1
			   当设置为-1时,表示加载alpha透明通道的图像,即4通道
	数据格式:
		cv2.imread()的默认通道格式HWC,即img.shape
	作用:
		加载图像
		如果图像加载失败,那么返回的对象img为None
	特别注意:
		CV读取的数据为BGR
2. cv.imshow ( ) 图像显示
2.1 cv.imshow ( ) 展示全部
	cv.imshow(winname, mat)
	参数:
		winname:显示图像的窗口名称
		mat: 传入的图像
	注意:
		CV读取BGR图像
img = cv.imread("rabbit.png")
# 图像可视化
cv.imshow('image', img)
cv.waitKey(0)
cv.destroyAllWindows()

2.2 cv.imshow ( ) 展示部分
img = cv.imread('chicken.png')
'''写法一'''
img2 = img[:500, :400]
# 图像可视化
cv.imshow('image', img2)
cv.waitKey(0)
cv.destroyAllWindows()
'''写法二'''
# 图像可视化
cv.imshow('image', img[:500, :400, :])
cv.waitKey(0)
cv.destroyAllWindows()

2.3 plt.imshow ( ) 图像显示
	【注意】
		matplotlib读取RGB图像
img = cv.imread("chicken.png")
print(img.shape)  # (583, 831, 3)
target_img = np.zeros_like(img, dtype=img.dtype)  # 用0填充相同shape的图像
print(target_img.shape)  # (583, 831, 3)
# plt读取的R、B通道值有误
target_img[:,:,0] = img[:,:,0]
target_img[:,:,1] = img[:,:,1]
target_img[:,:,2] = img[:,:,2]
plt.imshow(target_img)
plt.show()

方式一 指定通道
# plt读取正确的R、B通道值
target_img[:,:,0] = img[:,:,2]
target_img[:,:,1] = img[:,:,1]
target_img[:,:,2] = img[:,:,0]
plt.imshow(target_img)
plt.show()

方式二 cv.cvtColor ( )
cv.cvtColor(src, code, dst=None, dstCn=None)
	参数:
		src:输入图像
		code:颜色空间转换码
		dst:输出图像;大小、深度和原图像一致
		dstCn:
			目标图像的通道数; 
			如果参数是0,通道数自动由src和code决定
	作用:
		转换一种颜色空间到另一种颜色空间
img = cv.imread("chicken.png")
# 颜色空间转换
plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB))        
plt.show()

3. cv.waitKey ( ) 图像暂停时间
	cv.waitKey( )
	作用:
		让图像暂停delay毫秒
	参数:
		当delay=0时,表示永远暂停; 直至键盘任意输入的时候,结束暂停
		当delay>0时,若在delay毫秒期间没有键盘输出值,则返回-1;否则返回键
	返回值:
		有返回值,返回值为输入字符对应的ASCII码
		即:waitKey返回值的范围为(0-255)
	转换:
		chr ( )
		ord ( )
# 读取图像数据
img = cv.imread("chicken.png")
# 根据不同的输入进行图像的操作
cv.imshow('image', img)
# 键盘输入为ESC时,输出k值并关闭图像窗口;否则,将图片另存为名为news.png新图片并关闭图像窗口
# 等待键盘的输入
k = cv.waitKey(0) & 0xFF
if k == 27:  # ESC(ACSII) = 27
    print(k)
    cv.destroyAllWindows()
    
# 当输入的是其他键的时候
else:
    cv.imwrite('news.png', img)
    cv.destroyAllWindows()

4. cv.destroyAllWindows ( ) 释放资源
cv.destroyAllWindows()
感谢阅读🌼
 如果喜欢这篇文章,记得点赞👍和转发🔄哦!
 有任何想法或问题,欢迎留言交流💬,我们下次见!
 本文相关代码存放位置
     【Opencv1 图像的读取与显示】
祝愉快🌟!



















