文|抽象转移
本文主要讲述图像处理偏原理性的东西,如果要了解opencv,gdal怎么使用请移驾。
首先,我们明确一下图像的意义。
图像(影像)是能量,是矩阵,是颜色空间。
本质上讲,图像反映的是物体反射电磁波的信息,电磁波又是分波段的,除了我们熟悉的可见光,还有红外、紫外等其他的波段。所谓波段,其实就是电磁波谱中从某一波长到另一波长之间的范围。单波段图像的每一个像素点记录的是单一波段电磁波的辐亮度,在计算机上反映出来的就是黑白图像,也就是灰度图。
熟悉遥感过程的朋友们可能知道:遥感过程也即借助对电磁波敏感的仪器(如摄影元件),在不与探测目标接触的情况下,记录目标物对电磁波的辐射,反射,散射等信息。遥感影像也就是图像。
对电磁破中的每一个波段信息,其实可以用任意颜色来表达,比如你可以用由浅至浓的蓝色去描述红波段的反射值大小,但是计算机在表示、显示色彩的时候是按照红、绿、蓝来显示的(即RGB模式),为了使图像在视觉上接近我们所看到的实际效果,即用红色来表示红波段的值,绿色表示绿波段的值,蓝色表示蓝波段的值,三个波段的信息叠加,即一幅真彩图像。你还可以用红色表示绿波段等等,改变颜色与波段的匹配方法,得到的就是“假彩色”图像。
对于图像中的物体,反射该波段的能量不同,则值不同,通常我们所说的8位图像,则用0—255(0—2的8次方-1)个层级去描述波段值,0为白,255为黑。16位图像则采用0—2的16次方-1个层级去描述波段值。以此类推。bmp格式的图像则为8位图像,png等格式的图像在RGB模式的基础上,加了透明通道,即我们经常使用的ARGB颜色。Windows的GDI绘制则不支持透明通道,后来有了GDI+,Qt,Cairo等一系列支持透明通道的绘制引擎。
在数学和计算机中,我们用栅格(网格)来表征图像,我们可以理解为用M*N的网格来划分图像,每一个网格内,记录着每个波段的值,也就是颜色值,比如灰度图像,每个网格内则表示反射单波段的能量值。一幅真彩图像,一个网格内则记录着我们看到的颜色,该颜色由三原色RGB构成。
图像的表示方式与计算机屏幕显示的原理一致,网格越精细,能描述的信息也就越多,显示的图像细节也就越丰富。
下面简单介绍一下计算机与图像相关的一些基础知识:分辨率,DPI,比例尺。
DPI表示分辨率,指每英寸长度上的点数,英寸为长度单位。1/DPI=一个像素对应的英寸距离(单位inch)
英寸与米的换算比例是1:0.025400
因此一个像素对应的纸上距离计算公式为:(DPI通常为96)
1/DPI*0.0254 单位(m)
比例尺:一个像素的纸上距离和一个像素代表的现实中的距离之比例就是地理比例尺(Scale)
下面用一张图来表示dpi和比例尺之间的关系:
所以,以像素为大小的网格来表征图像,就是我们在计算屏幕中所见。
如果用矩阵来表达图像,则矩阵的行对应图像的高(单位为像素),矩阵的列对应图像的宽矩阵的元素对应图像的像素,矩阵元素的值就是像素的灰度值。