计算机图像视频处理

计算机视觉概论

计算机视觉概念

计算机图像处理,也即数字图像处理(Digital Image Processing), 是指将图像信号转换成数字信号并利用计算机对其进行处理的过程,是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理方法和技术。

计算机视觉(Computer Vision)简称CV,是一门用计算机模拟生物视觉的学科,更具体地将,就是让计算机代替人眼实现对目标的识别、分类、跟踪及场景理解。CV是人工智能(AI)领域的重要分支,也是一门具有很强综合性的学科,涉及计算机科学与工程、信号处理、光学、应用数学、统计学、神经生理学和认知科学等学科。

数字图像定义

一幅图像可以定义为一个二维函数f(x,y),其中x,y是空间平面坐标,而在任何一对x,y空间坐标处的幅值称为该点处的强度或灰度。当x,y和灰度值是有限的离散数值时,则称该图像为数字图像(Digital Image)

图片时通过像素拼接而成的,我们常说的分辨率就是图像像素的数量,比如分辨率为1024*720的一张图片就是在长度上的像素点为1024个,高度720个。每个像素点在计算机中存储的信息时它的RGB(红、绿、蓝,组成图像的三原色,范围是0~225)数值,将这些RGB以矩阵数据的方式存储在硬盘中。灰度图像只有1个通道,读取矩阵的shape为[x,y],坐标[x,y]就是图像中x行y列位置的像素值。RGB图像有3个通道,读取矩阵的shape为[x,y,3]。

计算机视觉消融实验 计算机视觉 视频处理_计算机视觉

计算机视觉发展历程

计算机视觉消融实验 计算机视觉 视频处理_计算机视觉_02

计算机视觉应用现状

OpenCV

OpenCV简介

OpenCV —— 开源计算机视觉库(Open Source Computer Vision Library)

➢ OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以在Windows, Linux,

mac OSX系统上面运行,实现了图像处理和计算机视觉方面的很多通用算法。

➢ OpenCV用C/+/+语言编写,它轻量级而且高效——由一系列 C 函数和C/+/+类构成,同时提供了Ruby、MATLAB、Python等语言的接口。

➢ 如今,来自世界各地包括intel、微软,IBM,索尼、西门子、google、斯坦福、MIT、剑桥等的各大公司、科研机构的研究人员共同维护支持着OpenCV的开源库开发。

OpenCV发展历程

1999年Intel公司为了增强CPU集群性能,启动了很多研究项目,其中就包括OpenCV。OpenCV

最初的核心代码和算法规范是Intel实验室团队完成的,这就是 OpenCV 的缘起。

计算机视觉消融实验 计算机视觉 视频处理_计算机视觉消融实验_03

图像、视频基本操作

图像去噪

图像去噪是指减少数字图像中噪声的过程。现实中的数字图像在数字化和传输过程中常受到成像设备与外部环境噪声干扰等影响,称为含噪图像或噪声图像。

计算机视觉消融实验 计算机视觉 视频处理_音视频_04

计算机视觉消融实验 计算机视觉 视频处理_人工智能_05

图像增强

有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果。

计算机视觉消融实验 计算机视觉 视频处理_OpenCV_06

图像修复

图像修补技术,即去除照片中的小噪声或者划痕,这种技术的思想就是使用坏点周围的像素点取代坏点。

计算机视觉消融实验 计算机视觉 视频处理_人工智能_07

图像分割

现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。

从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像素赋予相同的编号。

计算机视觉消融实验 计算机视觉 视频处理_OpenCV_08

图像颜色通道分离(RGB分离)

RGB三个颜色通道的分量进行分别显示和调整,可以更好的观察一些图像材料的特征,进行图像处理。

计算机视觉消融实验 计算机视觉 视频处理_人工智能_09

图像二值化

图像二值化( Image Binarization)就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。

计算机视觉消融实验 计算机视觉 视频处理_人工智能_10

滤波

图像滤波是信号处理里的一个概念,图像本身可以看成一个二维信号,其中像素点灰度值的高低代表信号强弱。图像灰度值变化剧烈的点是高频信号,图像中平坦的,灰度值变化不大的点就是低频信号。根据图像的高频与低频的特征,我们可以设计相应的高通、低通滤波器,高通滤波器可以检测图像中尖锐、变化明显的地方(提取边缘);低通滤波器可以让图像变得光滑,滤除图像中的噪声(平滑图像)。

计算机视觉消融实验 计算机视觉 视频处理_音视频_11

图像特征提取

图像特征包括颜色特征、纹理特征、形状特征和空间关系特征。即是一副图像能表现其独特性或易于识别性的区域。

计算机视觉消融实验 计算机视觉 视频处理_计算机视觉_12

特征匹配

特征匹配的方法是先找出特征显著的特征点(Feature Detect),然后再分别描述两幅图像的特征点(Feature Descriptor),形成特征描述符,最后比较两个特征描述符的的相似程度来判断是否为同一个图像(Feature Match)。

计算机视觉消融实验 计算机视觉 视频处理_计算机视觉_13

视频处理

计算机视觉消融实验 计算机视觉 视频处理_计算机视觉_14

图像读取与显示

  • OpenCV读取图片
  • imread():图像读入函数
  • 函数原型:
  • imread(filename, [flags])
  • filename:图片的路径
  • flags:所读取图片的颜色类型
  • cv.IMREAD_COLOR读入彩色图像,图像的透明度会被忽略,是默认参数;
  • cv.IMREAD_GRAYSCALE读入灰度图;cv.IMREAD_UNCHANGED读入一幅图像并且包括图像的alpha通道。
  • imshow():显示图片函数

图片存储

  • 存储图片,将图片另存为文件
  • imwrite():输出图像到文件
  • 函数原型
  • imwrite(filename,img[,params])
  • filename:输出后的文件名
  • img:要保存的图片
  • 保存的图片格式由文件名决定,示例如下:
  • cv2.imwrite(“test.png”,img) # 保存图片img为png格式
  • cv2.imwrite(“test.jpg”,img) # 保存图片img为jpg格式

视频读取

实时捕获摄像头视频

  • 有时我们会使用本地摄像头或本地视频的实时图像来进行处理,OpenCV为这种应用提供了非常简单的接口。
  • VideoCapture():捕获摄像头的句柄。使用句柄成员函数read()读取摄像头帧。
import cv2 as cv
    #参数0表示捕获系统默认摄像头
    cap = cv.VideoCapture(0)
    #只要摄像头打开就一直接收帧画面
    while cap.isOpened():
    status, frame = cap.read()
    #判断是否捕获到摄像头下一帧画面
    if status:
    #按键检查
    k = cv.waitKey(25) & 0XFF
    key = chr(k)
    if key == 'q':
    break
    cv.imshow('video', frame)
    cv.destroyWindow('video')