python+OpenCV笔记(一):图像的I/O操作

OpenCv提供了imread函数从文件加载图像,也提供了imwrite函数将图像写入文件,支持BMP,PNG,JPEG,TIFF等静态图像文件格式。

1.读取图像

(1)OpenCv API

cv2.imread()

参数:1.要读取的图像(路径) 2.读取方式的标志(flags,可省略)
读取方式的标志: 1.cv2.IMREAD_COLOR:(flags省略时的默认选项,也可用1代替),提供3通道的 BGR图像,每个通道一个8位值(0-255)。
2.cv2.IMREAD_GRAYSCALE:以灰度模式加载图像(可用0代替)
3.cv2.IMREAD_UNCHANGED:读取所有的图像数据,包括作为第四通道的α通道(或透明度通道),可用-1代替(如果有的话)

(2)使用Numpy创建图像

img=numpy.zeros((50, 30), dtype=numpy.uint8)

这里,表示每一个像素都用一个8位整数表示,这是一幅灰度图像,现在,我们使用cv2.cvtColor函数把这幅图像转换成BGR格式。

img=cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)

这时,每个像素都用一个三元数组表示,每个整数分别表示三个颜色通道(B,G,R)中的一个。
可利用shape属性返回行、列和通道数,函数:print(img.shape) ,两种结果分别是(50,30)和(50,30,3)。

2.显示图像

(1)OpenCv API

cv2.imshow()

参数: 1.显示图像的窗口名称 2.要加载的图像
注意: 在有其他GUI框架的支持下,仅用imshow()便可能显示出来,但在opencv中,只有调用waitKey时,才会绘制窗口。

(2)使用matplotlib显示图像

plt.imshow(img[:, :, ::-1])  # 通道反转
plt.show()

3.保存图像

API

cv2.imwrite()

参数: 1.文件名 2.要保存的图像

4.代码编写

import matplotlib.pyplot as plt
import cv2 as cv
import numpy as np

# 读取图像
img = cv.imread("E:\\qi.png")

img2 = np.zeros((500, 300), dtype=np.uint8)
img2 = cv.cvtColor(img2, cv.COLOR_GRAY2BGR)

# 显示图像
cv.imshow("img", img)

plt.imshow(img2[:, :, ::-1])  # 通道反转
plt.show()
print(img2.shape)
cv.waitKey(0)
cv.destroyAllWindows()
# 保存图像
cv.imwrite("E:\\temp.png", img)

在这里插入图片描述

- - - - -细节扩展- - - - -:

  1. imread返回BGR格式的图像,即使文件使用的是灰度格式。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值