随着人类社会进程的不断进步,先进的技术一直承载着人类社会的进步,特别是近年来日益成熟的人工智能技术,深刻地改变了我们熟悉的各个领域。考虑到图像处理技术作为人工智能领域的计算机视觉,我们的微信官方账号始终紧跟当前社会发展趋势。(CV)重要的基础知识也可能是粉丝和朋友感兴趣的地方。因此,小编决定开设一个新的专栏——opencv图像处理,希望能帮助更多想学习人工智能技术的朋友。当然,这些知识对三年级和四年级的学生也很有用,期待给大家带来更多的快乐,我们一直在前进。
今天我们只讲基础知识,不讲代码。
图像处理
一、图像处理简介
如果没有限制条件,目前的图像处理(Image Processing)其实都是数字图像处理(Digital Image Processing)),它是一种利用计算机处理和分析图像以达到预期结果的技术。图像处理包括基本图像处理(滤波器、二值化、形态操作等)、图像增强、图像压缩、图像恢复和匹配通常在荧光屏上观察到明亮的图像。然而,当这些图像转换为相机时,它们保存了图像中每个点的灰度值。
数字图像,又称数字图像或数字图像,是二维图像用有限数字数值像素表示的图像。数字图像是由模拟图像数字化获得的图像,以像素为基本元素,可以用数字计算机或数字电路存储和处理。
二、图像基础知识
至于图像,我们通常直观地认为只有两种颜色表达方式,一种是黑白灰度图像,另一种是三个单通道颜色混合的彩色图像(如上图2.1)。大多数人可能知道电脑上的彩色图像是RGB(红色-绿色-蓝色,Red-Green-Blue)显示颜色模式(例如下面的颜色图),但是OpenCV的颜色图是B-G-按顺序存储R通道,灰度图只有一个通道;
从图中可以看出,图像左上角的顶点为零坐标顶点,水平方向为x坐标轴,垂直方向为y轴坐标。因此,图像中的某个像素坐标可以表示为(x,y, z),x、y这个像素的位置,z表示为通道,如果OpenCV读取,可分别表示为0, 1, (分别对应BGR三个通道),比如一副640*480的彩色图像,其中间像素位置为(320、240),如果要分别取值每个通道像素,则可取为(320、240、0)、(320、240、1)、(320、240、2)。
OpenCV
OpenCV简介
Opencv是基于BSD许可(开源)发行的跨平台计算机视觉库,可在Linux运行、Windows、Android和Mac 在OS操作系统上。它轻量级高效—从一系列开始 C 函数和少量 C 同时提供Python、Ruby、MATLAB等语言的界面实现了许多通用算法的图像处理和计算机视觉。
OpenCV使用C 语言编写,其主要接口也是C 语言,但仍然保留了大量的C语言界面。该库还有大量的Python、Java and MATLAB/OCTAVE(版本2.5)接口。这些语言的API接口函数可以通过在线文档获得。现在也提供C#、Ch、Ruby,支持GO。
所有新的开发和算法都使用C 接口。2010年9月也实现了使用CUDA的GPU接口。
总结:总之,OpenCV是一个库函数包,它包含了大量的图像处理功能函数,使我们更容易操作各种图像。目前的几个更新版本支持GPU(显卡)和深度学习预训练模型,所以OpenCV已经成为很多图像应用的首选,OpenCV越来越强大。
图像小知识
1. 数字图像处理包括哪些内容?
包括图像增强、图像回复、图像压缩、图像分割等
2. 图像分辨率是什么意思?它能代表什么?
图像分辨率是指图像的长度和宽度有多少像素,例如图像的分辨率。 图像为1366*768,即图像长度为1366个像素,宽度为768个像素,1。 一般来说,分辨率越高,图像越清晰,反之亦然。
3. 如何获得数字图像?
模拟图像采样数字图像,采样点数和频率越高,越接近真实图像。