openCV(一)基础背景

1 认识计算机视觉

2012年AlexNet模型在ImageNet图像分类中获得比赛冠军,深度学习开始在计算机视觉领域流行。早期的计算机视觉主要集中在重建方面,2012年以后在感知和重建两个领域都受到了深度学习的影响。应用场景包括自动驾驶、机器视觉、安防监控、其他行业等等。

计算机视觉的框架主要包含matlab、Matrox mil、Halcon、VisionPro、opencv,只有opencv是开源的。随着深度学习的发展又加入了tensorflow、pytorch、paddlepaddle+openvino、tensorRT、onnxruntime等。主流的开发语言是C++和python。

opencv支持c/c++/python/java/js等主流语言。应用与多个领域。opencv应用了TBB、PPL、SSE、CUDA、UI指令集等多种加速技术,支持Windows、Linux、Mac OS系统。对于python语言开发,可以通过pip install opencv-python进行安装,也可以使用镜像源进行安装pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
在这里插入图片描述

2 读取与显示图像

图像可以分为灰度图和彩色图,灰度图只有黑白两种颜色,由 0 − 255 0-255 0255之间的数值表示颜色深浅;彩色图像包含了BGR三种颜色通道,每个通道由 0 − 255 0-255 0255之间的数值大小表示。
实际黑白图像:
在这里插入图片描述
计算机的理解:

[[163 162 161 … 170 154 130]
[162 162 162 … 170 155 126]

[42 44 57 … 102 106 109]]

实际彩色图像
在这里插入图片描述
计算机的理解:

[[[128 138 225] … [55 21 82]]
[[127 137 224] … [54 20 81]]

[[128 138 225] … [84 74 188]]]
由包含三个数的三维通道分别表示BGR

读取和显示图像也很简单

  • imread(filname[, flags])函数读取图像:filename是图像的名字

    image = cv.imread("lena.jpg")
    
  • imshow(winname, mat)函数显示图像:winname是显示窗口名字,mat是读取的图像数组。

    cv.imshow("lena", image)
    
  • cv.waitKey(0)表示一直等待直到任意一个键盘操作,才关闭图像,或者可以加等待的时间,单位是毫秒。否则显示图像一闪而过。

    cv.waitKey(0)
    

全部代码显示为

image = cv.imread("lena.jpg")  # 读取图像,图像名
cv.imshow("lena", image)  # 显示图像,窗口名,图像名
cv.waitKey(0)  # 一直等待,等待时间(i(>0)毫秒),0一直等待
cv.destroyaAllWindows()  # 删除所有窗口
cv.imerite("lena.png", image)  # 写入图像
  1. 读取图像:cv.imread(文件名[, 参数])可以加入读入图像类型的参数:

    • 图像不可变:cv.IMREAD_UNCHANGED
    • 灰度图像:cv.IMREAD_GRAYSCALE
    • 彩色图像:cv.IMREAD_COLOR
    • 图像通道BGR转成RGB:cv.IMREAD_BGR2RGB
  2. 显示图像:cv.imshow(窗口名,图像名)

  3. 窗口等待时间:cv.waitKey(n),等待n(n>0)毫秒;等于0则一直等待,直到键盘输入;参数<0表示等待键盘单击。

  4. 删除窗口:cv.destroyaAllWindows()删除所有窗口,cv.destroyaWindows()删除当前窗口

  5. 写入图像:cv.imwrite(文件地址,图像名)

【参考】
DataWhale OpenCV课程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值