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()

灰度转换

将三通道图像转化为单通道图像
公式: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)
 

颜色转换

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()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值