Opencv入门教程(1)—图像基本操作(imread,imshow,waitKey,imwrite,cv2.cvtColor)

目录:

  • 读取图片
  • 显示图片
  • 延长窗口时间
  • 销毁窗口
  • 保存图片
  • 图像转换
  • 代码及效果展示
    • 读取显示图片
    • 灰度转换
    • 颜色转换

注:1.要导入cv2库,有的参数也需要加cv2.
  2.函数中[ ]中的内容是可选参数

读取图片

函数名:cv2.imread(path [, flags])
返回值:返回读取到的图像,BGR
参数:
  path:图片的路径,注意 \ 用 \ \ 代替,或者用 /
  flags:指定加载图像的颜色类型的标志(以下可以用数字,也可以给用括号中的内容)
    0(cv2.IMREAD_GRAYSCALE):返回灰色图像
    1(cv2.IMREAD_COLOR):返回3通道彩色图像(常用、默认值)
    -1 (cv2.IMREAD_UNCHANGED):按原样返回加载的图像(使用 alpha 通道)

显示图片

函数名:cv2.imshow(winname, mat)
返回值:None
参数:
  winname:窗口的名字
  mat:要显示的图像

延长窗口时间

函数名:cv2.waitKey([delay])
返回值:返会键值对应的ASCII码
参数:按键值(整数)
  delay:以毫秒为单位的延迟,0代表无限延迟
  如果在指定的时间过去之前没有按下任何键,则返回被按下键的代码或 -1
  此函数应跟随 imshow 函数,该函数显示指定毫秒的图像。否则,它不会显示图像。例如,waitKey(0) 将无限显示窗口,直到有任何按键(适用于图像显示), waitKey(25) 将显示一帧 25 毫秒,之后显示将自动关闭。(如果你把它放在一个循环中读取视频,它会逐帧显示视频)

销毁窗口

函数名:cv2.destroyAllWindows()
返回值:None
简介:关闭窗口并取消分配任何相关的内存使用

保存图片

函数名:cv2.imwrite(filename, img[, params])
返回值:None
简介:关闭窗口并取消分配任何相关的内存使用
参数:
  filename:要保存图片的名字及格式,比如’phtot.jpg’
  img:需要保存的图像

图像转换

函数名:cv2.cvtColor(src, code[, dst[, dstCn]])
返回值:新的图像
参数:
  src:输入的图像
  code:详情见此

代码及效果展示

读取显示图片

import cv2

img = cv2.imread('lena.jpg', 1) #1也可以不填
while True:
    cv2.imshow('photo', img)
    key = cv2.waitKey(0)
    if key == ord('q'):
        break

cv2.destroyAllWindows()
Opencv入门教程(1)—图像基本操作(imread,imshow,waitKey,imwrite,cv2.cvtColor)_第1张图片

灰度转换

将三通道图像转化为单通道图像
公式:3通道—>1: GRAY =B*0.114+G 0.587 +R0.299
单通道—>3通道: R=G=B= GRAY; A=0(阿尔法通道)

import cv2
import matplotlib.pyplot as plt


img = cv2.imread('lena.jpg')
shape = img.shape
print(shape)
#(512, 512, 3)
if shape[2] == 3 or shape[2] == 4:
    img1 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    cv2.imshow('img1', img1)
cv2.waitKey(0)
 
Opencv入门教程(1)—图像基本操作(imread,imshow,waitKey,imwrite,cv2.cvtColor)_第2张图片

颜色转换

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('lena.jpg')

img_cv = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img_numpy = img[:, :, ::-1]

plt.subplot(1, 3, 1)#一行3列的第1张图
plt.imshow(img)#BGR
plt.subplot(1, 3, 2)#一行3列的第2张图
plt.imshow(img_cv)#RGB
plt.subplot(1, 3, 3)#一行3列的第3张图
plt.imshow(img_numpy)#RGB

plt.show()
Opencv入门教程(1)—图像基本操作(imread,imshow,waitKey,imwrite,cv2.cvtColor)_第3张图片

你可能感兴趣的:(计算机视觉python,1024程序员节,python,opencv)