常用 cv2 函数(长期更新)

cv2.imread()

cv2.imread() 为 opencv-python 包的读取图片的函数。

cv2.imread()有两个参数,第一个参数filename是图片路径第二个参数flag表示图片读取模式,共有三种:

cv2.IMREAD_COLOR:加载彩色图片,这个是默认参数,可以直接写1。
cv2.IMREAD_GRAYSCALE:以灰度模式加载图片,可以直接写0。
cv2.IMREAD_UNCHANGED:包括alpha(包括透明度通道),可以直接写-1

示例

import cv2
filepath = r''
image = cv2.imread(filepath)

cv2.imread()读取图片后以多维数组的形式保存图片信息,前两维表示图片的像素坐标,最后一维表示图片的通道索引,具体图像的通道数由图片的格式来决定。

cv2.imread()接口读图像,读进来直接是BGR 格式数据格式在 0~255,通道格式为(W,H,C)

cv2.cvtColor()

cv2.cvtColor(p1,p2) 是颜色空间转换函数,p1是需要转换的图片,p2是转换成何种格式。

cv2.COLOR_BGR2RGB 将BGR格式转换成RGB格式
cv2.COLOR_BGR2GRAY 将BGR格式转换成灰度图片
(灰度图片并不是指常规意义上的黑白图片,只用看是不是无符号八位整型(unit8),单通道即可判断)

在这里插入图片描述

cv2.imwrite()

函数 cv2.imwrite() 用于将图像保存到指定的文件。

函数说明:

retval = cv2.imwrite(filename, img [, paras])
  • cv2.imwrite() 将 OpenCV 图像保存到指定的文件。
  • cv2.imwrite() 基于保存文件的扩展名选择保存图像的格式。
  • cv2.imwrite() 只能保存 BGR 3通道图像,或 8 位单通道图像、或 PNG/JPEG/TIFF 16位无符号单通道图像。

参数说明:

  • filename:要保存的文件的路径和名称,包括文件扩展名
  • img:要保存的 OpenCV 图像,nparray 多维数组
  • paras:不同编码格式的参数,可选项
    • cv2.CV_IMWRITE_JPEG_QUALITY:设置 .jpeg/.jpg 格式的图片质量,取值为 0-100(默认值 95),数值越大则图片质量越高;
    • cv2.CV_IMWRITE_WEBP_QUALITY:设置 .webp 格式的图片质量,取值为 0-100;
    • cv2.CV_IMWRITE_PNG_COMPRESSION:设置 .png 格式图片的压缩比,取值为 0-9(默认值 3),数值越大则压缩比越大。
  • retval:返回值,保存成功返回 True,否则返回 False。

注意事项:

  1. cv2.imwrite() 保存的是 OpenCV 图像(多维数组),不是 cv2.imread() 读取的图像文件,所保存的文件格式是由 filename 的扩展名决定的,与读取的图像文件的格式无关。
  2. 对 4 通道 BGRA 图像,可以使用 Alpha 通道保存为 PNG 图像。
  3. cv2.imwrite() 指定图片的存储路径和文件名,在 python3 中不支持中文和空格(但并不会报错)。必须使用中文时,可以使用 cv2.imencode() 处理,参见扩展例程。

基本例程:

# 1.4 图像的保存
imgFile = "../images/logoCV.png"  # 读取文件的路径
img3 = cv2.imread(imgFile, flags=1)  # flags=1 读取彩色图像(BGR)

saveFile = "../images/imgSave.png"  # 保存文件的路径
# cv2.imwrite(saveFile, img3, [int(cv2.IMWRITE_PNG_COMPRESSION), 8])  # 保存图像文件, 设置压缩比为 8
cv2.imwrite(saveFile, img3)  # 保存图像文件

扩展例程:

# 1.5 保存中文路径的图像
imgFile = "../images/logoCV.png"  # 读取文件的路径
img3 = cv2.imread(imgFile, flags=1)  # flags=1 读取彩色图像(BGR)

saveFile = "../images/测试图02.jpg"  # 带有中文的保存文件路径
# cv2.imwrite(saveFile, img3)  # imwrite 不支持中文路径和文件名,读取失败,但不会报错!
img_write = cv2.imencode(".jpg", img3)[1].tofile(saveFile)

cv2.resize()

cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None) —— 将原始图像调整为指定大小。

各参数释义:

  • scr:原始图像
  • dsize:输出图像的尺寸(元组方式)
  • dst:输出图像
  • fx:沿水平轴缩放的比例因子
  • fy:沿垂直轴缩放的比例因子
  • interpolation:插值方法,有以下5种:
    在这里插入图片描述

注:如果要缩小图像,建议选择:cv2.INTER_AREA;如果要放大图像,cv2.INTER_CUBIC效果更好但是速度慢,cv2.INTER_LINEAR效果尚可且速度快。进行缩放时, dsize和fx、fy 二选一即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玳宸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值