opencv-python学习【1】图片的显示与保存

文章目录

  • 一.安装与导入
  • 二.读取图像
    • 1.相关函数
    • 2.示例
  • 三.显示图像
    • 1.相关函数
    • 2.示例
      • (1).显示图片
      • (2).waitKey显示不同图片
      • (3).destroyWindow销毁指定窗口
      • (4).destroyAllWindows销毁所有窗口
  • 四.保存图像
    • 1.相关函数
    • 2.示例

一.安装与导入

安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

导入 import cv2

注意:

   p y c h a r m pycharm pycharm 中安装 cv2 后可能出现 cv2 不提示方法的问题,如果你的 cv2​ 安装路径为 ‘…\venv\Lib\site-packages\cv2’,在 cv2​ 该文件夹下有一个 cv2.pyd 文件,复制这个文件到 ‘…\venv\Lib\site-packages’ 下,然后重启 p y c h a r m pycharm pycharm 即可。

二.读取图像

1.相关函数

  • retval = cv2.imread(filename[, flags]) 读取图片
    • 返回值:
      • retval:读取到的图像,未读取到时返回 None
    • 输入参数:
      • filename:要读取图像的完整文件名
      • flags:读取标记,以何种形式来读取文件 。flag 具体值如下,输入时既可以输入,也可以输入数值
数值 含义
cv2.IMREAD_UNCHANGED -1 保持原格式不变(依然是BGR格式)
cv2.IMREAD_GRAYSCALE 0 将图像调整为单通道的灰度图
cv2.IMREAD_COLOR 1 将图像调整为3通道的BGR格式(默认)
cv2.IMREAD_ANYDEPTH 2 当载入的图像深度为16或32位时返回其对应的深度图像,否则转换为8位图像
cv2.IMREAD_ANYCOLOR 4 以任何可能的颜色格式读取图像
cv2.IMREAD_LOAD_GDAL 8 使用gdal驱动程序加载图像
cv2.IMREAD_REDUCED_COLOR_2 将图像转为3通道的BGR彩色图像,并将图像尺寸减小为原来的 1/2
cv2.IMREAD_REDUCED_COLOR_4 将图像转为3通道的BGR彩色图像,并将图像尺寸减小为原来的 1/4
cv2.IMREAD_REDUCED_COLOR_8 将图像转为3通道的BGR彩色图像,并将图像尺寸减小为原来的 1/8
cv2.IMREAD_REDUCED_GRAYSCALE_2 将图像转为单通道灰度图像,并将图像尺寸减小为原来的 1/2
cv2.IMREAD_REDUCED_GRAYSCALE_4 将图像转为单通道灰度图像,并将图像尺寸减小为原来的 1/4
cv2.IMREAD_REDUCED_GRAYSCALE_8 将图像转为单通道灰度图像,并将图像尺寸减小为原来的 1/8

2.示例

import cv2

bgr = cv2.imread('dog.jpg')
print(bgr)

三.显示图像

1.相关函数

  • cv2.namedWindow(winname)----创建指定名称的窗口,窗口用于显示图片
    • winname:窗口名称
  • cv2.imshow(winname, img)----显示图像
    • winname:窗口名称
    • img:要显示的图片
  • retval = cv2.waitkey([delay])----等待按钮,当用户按下键盘后该语句执行,并返回获取值
    • retval:返回值。如果有按键被按下,就返回按键的 ASCII 码,没有则返回-1
    • delay:等待键盘触发的时间,单位ms。当 d e l a y ≤ 0 delay\leq0 delay0 时无限等待, d e l a y delay delay 默认为0。
  • cv2.destroyWindow(winname)----销毁指定窗口
    • winname:窗口名称
  • cv2.destroyAllWindows()----销毁所有窗口

2.示例

(1).显示图片

import cv2

bgr = cv2.imread('dog.jpg')
cv2.namedWindow('dog')	# 创建窗口的这一步可以省略,省略时cv2.imshow('dog',bgr)会自己执行这一步
cv2.imshow('dog',bgr)
cv2.waitKey()

  注意:opencv 读取到的图片默认情况下是 bgr 格式,但是使用 cv2.imshow 显示图片时它又会把 bgr 格式转回为 rgb 格式去显示。所以在读取图片后如果不进行格式转换,用 matplotlib 去显示图片时,图片将会是如下图的 bgr 格式。

cv2显示RGB格式 matplotlib显示BGR格式
opencv-python学习【1】图片的显示与保存_第1张图片 opencv-python学习【1】图片的显示与保存_第2张图片

(2).waitKey显示不同图片

import cv2
dog = cv2.imread('dog.jpg')
cat = cv2.imread('cat.jpg')
cv2.imshow('dog',dog)
key = cv2.waitKey()
if key == ord('A'):
    cv2.imshow('another_dog',dog)
    if key == ord('B'):
        cv2.imshow('cat',cat)
        cv2.waitKey()

  程序会先显示一张狗的图片,按下A后显示 ‘dog’ 与 ‘another_dog’ 两个窗口,而按下B后显示 ‘dog’ 与 ‘cat’ 两个窗口。

opencv-python学习【1】图片的显示与保存_第3张图片

(3).destroyWindow销毁指定窗口

import cv2

dog = cv2.imread('dog.jpg')
cv2.imshow('dog',dog)
cv2.waitKey()
cv2.destroyWindow('dog')

  按下任意按键销毁 ‘dog’ 窗口。

(4).destroyAllWindows销毁所有窗口

import cv2

dog = cv2.imread('dog.jpg')
cv2.imshow('dog1',dog)
cv2.imshow('dog2',dog)
cv2.waitKey()
cv2.destroyAllWindows

  按下任意按键销毁 ‘dog1’ 和 ‘dog2’ 窗口。

四.保存图像

1.相关函数

  • retval = cv2.imwrite(filename, img[, params])
    • filename:要保存目标文件的完整路径文件名,包含扩展名
    • img:要保存的图片名称
    • retval :保存成功返回 True,失败返回 False
    • params:保存类型参数,可选。默认为None

2.示例

import cv2

dog = cv2.imread('dog.jpg')
cv2.imwrite('res.png',dog)

  默认读取图片后,保存图片功能也会将 bgr 转为 rgb 格式进行保存。

你可能感兴趣的:(opencv-python学习,python,opencv,计算机视觉)