本是青灯不归客,却因浊酒恋红尘
前言
伴随着人类社会历程的不断向前推进,先进的科技就一直承载着人类社会的进步,特别是近年来日渐成熟的AI技术,深远地改变了我们熟悉的各个领域。我们公众号时刻紧跟当前社会发展潮流,考虑到,图像处理技术作为人工智能领域中计算机视觉(CV)的重要基础知识,同时可能也是粉丝朋友们感兴趣的地方,为此,小编决定新开一个专栏——opencv图像处理,期待能够帮助更多想要学习AI技术的小伙伴们,当然,这些知识对于大学三四年级的同学也非常有用哦,期待能够带给大家更多的快乐,我们,一直在前行。
今天我们只讲基础知识,不讲代码。
图像处理
一、图像处理简介
如果没有限定条件,目前的图像处理(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, 2(分别对应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 接口。一个使用CUDA的GPU接口也于2010年9月开始实现。
小结:一句话,OpenCV就是一个库函数包,里面把包含了很多图像处理的功能函数,使得我们可以更加容易的对图像进行各种操作,当前的几个更新版本,已经支持了GPU(显卡)和深度学习预训练模型,因此OpenCV已经成为了很多图像方面落地应用的首要选择,OpenCV已经变得越来越强大。
图像小知识
1. 数字图像处理包括哪些内容?
包括图像增强,图像回复,图像压缩,图像分割等内容
2. 图像分辨率是什么意思?又能代表什么?
图像分辨率的意思就是一幅图像的长和宽有多少个像素点,例如一幅分辨率 为1366*768的图像,便是图像的长为1366个像素点,宽为768个像素点, 一 般情况而言,分辨率越高的图像越清晰,反之越模糊。
3. 数字图像如何得来?
数字图像由模拟图像采样而来,采样的点数和频率越高,越接近真实图像。
结语
今天的图像基础知识就分享到这里了,后面的文章,我们会从基础知识出发,用代码的方式为大家呈现各种图像处理算法,然而,今天的文章对于后面的学习尤为重要,希望大家看了今天的推文后,继续去补充小编没有讲到的图像知识,如此,图像处理的学习将会变得更加容易。
图像处理并不可怕,我们会从基础出发,让所有人都能加入我们的学习之路,最终,掌握大部分的图像处理算法,为以后的科研打下良好基础。
编辑:玥怡居士|审核:小圈圈居士