一.OpenCv图像&视频加载和显示

本文介绍了机器视觉的基本概念和应用,详细讲解了OpenCV的安装及图像视频的加载和显示,包括创建和显示窗口、加载显示图片、保存图片、视频采集与录制,以及鼠标控制和TrackBar控件的使用。
摘要由CSDN通过智能技术生成

图片&视频的加载和显示

1. 机器视觉介绍

现在说的机器视觉(Machine Vision)一般指计算机视觉(Computer Vision), 简单来说就是研究如何使机器看懂东西.

就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。

1.1 机器视觉的应用
  • 物体识别: 人脸识别, 车辆检测

  • 在这里插入图片描述
    在这里插入图片描述

  • 识别图像中的文字(OCR)

在这里插入图片描述

  • 图像拼接, 修复, 背景替换
    在这里插入图片描述
    在这里插入图片描述

2. OpenCV介绍

  • Gray Bradsky于1999年开发, 2000年发布

  • C++, Python, Java, JS

  • 跨平台(Windows, Linux, Mac…)

为什么选择python语言:

  • python语言简单, 开发速度快
  • 底层使用C/C++, 速度有保障
  • 有完整的生态链

学习目标:

  • 了解OpenCV的运行机制
  • 可以使用OpenCV处理一些图像常见问题
  • 学会物体识别, 文字识别等问题的处理思路

3. 安装OpenCV

进入虚拟环境, 执行pip install opencv-python==3.4.1.15, 3.4.2之后有些算法申请了专利,用不了了.

安装opencv扩展包(选装): pip install opencv-contrib-python==3.4.1.15

如果装不了去:https://www.lfd.uci.edu/~gohlke/pythonlibs/下载相应的包手动安装.

pip install opencv-python3.4.1.15 opencv-contrib-python3.4.1.15 jupyter matplotlib -i https://pypi.douban.com/simple

4. 图像视频的加载和显示

4.1 创建和显示窗口
  • namedWindow() 创建命名窗口

  • imshow() 显示窗口

  • destroyAllwindws() 摧毁窗口

  • resizeWindow() 改变窗口大小

  • waitKey() 等待用户输入

    import c2
    
    # cv2.namedWindow('new', cv2.WINDOW_AUTOSIZE)
    # WINDOW_NORMAL可以让窗口大小变得可以调节
    cv2.namedWindow('new', cv2.WINDOW_NORMAL)
    # 修改窗口大小
    cv2.resizeWindow('new', 1920, 1080)
    cv2.imshow('new', 0)
    # waitKey方法表示等待按键, 0表示任何按键, 其他整数表示等待按键的时间,单位是毫秒, 超过时间没有发生按键操作窗口会自动关闭.
    # 会返回按键的ascii的值
    key = cv2.waitKey(0)
    if key == ord('q'):
        cv2.destroyAllWindows()
    
4.2 加载显示图片
  • imread(path, flag): 使用imread可以读取图片, 默认读取的是彩色图片.比如:

    # 导入opencv包
    import cv2
    import matplotlib.pyplot as plt
    import numpy as np
    
    # 读取图片
    img = cv2.imread('./cat.jpeg')
    
    • 原图长这样:

      在这里插入图片描述

      使用matplotlib显示plt.imshow(img), 长这样:

      在这里插入图片描述

    发现这个猫的样子没变, 但是颜色不太对, 这是因为OpenCV读取的图片颜色通道是按照BGR(蓝绿红)排列的, 一般图片通道都是按照RGB来排列的.为了正常的显示猫的图片, 我们要用OpenCV的图像显示方法:

    cv2.imshow('cat', img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    我们可以把显示图片的方法封装成一个函数方便我们显示图片:

    def cv_show(name, img)
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值