图像如何作为数据来计算

关于图像如何数据化,以前大体了解一点儿,就是像素嘛,每个像素点用一串和1表示,然后怎样就不知道了。

如今图像的处理和识别是人工智能和大数据应用的重要领域,什么人脸识别、智能美颜等等,前提都是要能够把图像数据化然后计算。这两天看到一篇介绍图像处理识别技术基础知识的材料,明白了一点儿皮毛,复述一下。

1图像的数据化

我们看到图像或者说图像的存在是因为光线,光有三原色:红R,绿G,蓝B,每种颜色有亮、有暗,亮度强弱可由—1之间的数字表示,任何颜色都可由三原色以不同亮度组合而成。

电子屏幕上的图像,是由许多像素点组成,每个像素点的颜色不同,是由不同强度的RGB组合而成。这样每一个像素点可以用—1之间的三个数字表示,比如(0.1,0.5,1),即0.1亮度的R+0.5亮度的G+1亮度的B组成的颜色,这是啥颜色?不知道。但如果三原色都最亮,(1,1,1),就是白色;三原色都最暗,(0,0,0),就是黑色。

假设一张分辨率为500*800的图片,也就是有500*800个像素点,每个像素点有3个数字,这张图片实际上就可以用RGB红绿蓝3个500*800的矩阵表示,这三个矩阵是这张图片的数据。

2灰度

三个矩阵有点儿多,成千上万图片的话,数据量还是很大的。而且有时候我们图像处理尤其智能识别的时候,颜色并不重要,比如人脸识别,靠的肯定不是脸色,而是线条、轮廓、结构、特征什么的。这样的话,就可以把图像数据简化,实际上就是把彩色图像简化成黑白图像,通过一个概念——灰度。

灰度就是黑白之间的亮度。彩色图像一个像素3个数,即区分颜色又区分亮度,简化过程就是把3中颜色的亮度相加,变成一个亮度,不区分颜色了,就变成了灰度。如此,一张图片就由3个矩阵简化为1个矩阵,数据量减少2/3,运算速度可以大幅提升。

3图像处理和识别就是矩阵计算

图像数据化,整张图拆成无数点,每个点都拆成数字,那图像的处理实际上就是用数学方法和计算机软硬件对这些数字进行运算和加工了。

比如,把所有矩阵数据都减掉一点儿,那图像就变暗,都加一点儿,就变亮。所有矩阵数据平方呢?那原来的亮度差就会放大,也就是我们经常说的,对比度增强。如果所有数据取倒数呢?大的变小,小的变大,就是图片处理中的“反色”。等等。实质上,都是根据我们的实际需求,来对矩阵数据制定个相应的数学规则,也就是算法,运算之后得到我们想要的结果。

再看个稍微复杂一点儿的,比如边界识别。这个在图像处理中最常用,无论识别,还是抠图,都需要把图像里物体的边界准确找到。这个怎么建模呢?先有个常识性判断,就是物体轮廓处一定是明暗亮度变化比较大、灰度变化比较强烈的地方。就用不断用上一个像素点数据减临近像素点数据,差值突变的地方最可能是边界。怎么识别图像清晰还是模糊呢?比如识别好天气和雾霾天,就可以求n个差值的方差,方差大说明变化大,说明图像轮廓多,可能是晴天;方差小说明变化小,说明图像模糊,可能有雾霾。

当然上面说的都是最最简单的运算,真正高级的图像处理识别,采取的数学模型和算法比这复杂一万倍,我看不懂了,也就没法复述了。但是,我想最基本的原理一样,就是矩阵计算的问题。

越来越感觉,学习了解数据挖掘,真的要有数学和概率的基础,否则,只能明白些浅层次的东西,稍微深入一点儿就是一头雾水,啥也不懂啦。哎,坑太深,慢慢来吧。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180718G0LRHI00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券