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
openCV(一)基础背景_第1张图片

2 读取与显示图像

图像可以分为灰度图和彩色图,灰度图只有黑白两种颜色,由 0 − 255 0-255 0255之间的数值表示颜色深浅;彩色图像包含了BGR三种颜色通道,每个通道由 0 − 255 0-255 0255之间的数值大小表示。
实际黑白图像:
openCV(一)基础背景_第2张图片
计算机的理解:

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

[42 44 57 … 102 106 109]]

实际彩色图像
openCV(一)基础背景_第3张图片
计算机的理解:

[[[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)  # 一直等待
cv.destroyaAllWindows()  # 删除窗口

【参考】
DataWhale OpenCV课程

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