加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 综合聚焦 > 创业热点 > 点评 > 正文

产品讲技术 | 带你看懂什么是计算机视觉(一)

发布时间:2020-02-22 00:33:55 所属栏目:点评 来源:做站长
导读:副标题#e# 做为一名5岁的AI产品汪,刚好利用春节(疫情)假期在家整理了一些CV的文章,发现网上的资料质量参差不齐,内容缺斤少两,小白很难甄别/读懂,想对CV有一个系统的认识很难,就自己做了一个系统总结(小白可以当教材看)。 本人并非CV领域专业人士

4)加权平均法:根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对RGB三分量进行加权平均能得到较合理的灰度图像。

1.2 什么是图像几何变换?

图像几何变换又称为图像空间变换,通过平移、转置、镜像、旋转、缩放等几何变换对采集的图像进行处理,用于改正图像采集系统的系统误差和仪器位置(成像角度、透视关系乃至镜头自身原因)的随机误差。

这就给观测者或是图像识别程序带来了困扰,通过适当的几何变换可以最大程度地消除这些几何失真所产生的负面影响,有利于我们在后续的处理和识别工作中将注意力集中子图像内容本身。更确切地说是图像中的对象,而不是该对象的角度和位置等。

因此, 几何变换常常作为其他图像处理应用的预处理步骤, 是图像归一化的核心工作之一。它将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置. 我们学习几何变换的关键就是要确定这种空间映射关系, 以及映射过程中的变换参数。

目的:减少因几何失真而造成图像识别的问题,通过图像空间变换最大程度地消除几何失真产生的负面影响。

下面会给大家介绍一下几何变换常用的几种方法的原理和Matlab实现方法:

  • 图像的平移变换;
  • 图像的镜像变换;
  • 图像的转置变换;
  • 图像的旋转变换;
  • 图像的缩放。

1.2.1 图像的平移变换

在进行书写matlab代码之前,先来了解一下图像平移的理论基础。设图像的高度为H,宽度为W,如下所示:

产品讲技术 | 带你看懂什么是计算机视觉(一)

我们知道,图像是由像素组成的,而像素的集合就相当于一个二维的矩阵,每一个像素都有一个“位置”,也就是像素都有一个坐标。假设原来的像素的位置坐标为(x0,y0),经过平移量(△x,△y)后,坐标变为(x1,y1),如下所示:

产品讲技术 | 带你看懂什么是计算机视觉(一)

用数学式子表示可以表示为:

x1 = x0 + △x

y1 = y0 + △y

用矩阵表示为:

产品讲技术 | 带你看懂什么是计算机视觉(一)

本来使用二维矩阵就可以了的,但是为了适应像素、拓展适应性,这里使用三位的向量。

式子中,矩阵:

产品讲技术 | 带你看懂什么是计算机视觉(一)

称为平移变换矩阵(因子),△x和△y为平移量。

此外,我们也知道了,图像的高度H其实也就是像素的行数,对于坐标1≤X≤H;图像的长度也就是像素的列数,对应坐标1≤Y≤W。

我们先来看一下效果,,效果如下所示:

产品讲技术 | 带你看懂什么是计算机视觉(一)

然后下面分析一下关键的代码:

读入图像之后,得到im,我们可以看到im是一个三维的变量,包括了像素的位置(高度(即垂直长度)和宽度(即水平长度)),像素的颜色。(注,24位真彩图:也是用矩阵表示,图像像素直接用RGB颜色显示,而不是通过颜色索引表。图像像素的颜色用三个变量表示即(R,G,B),每个变量从0~255变化,因此一个像素也就是8bit*3=24bit,一个像素用24bit表示可以有2^24种颜色。)我们可以看到会有unit8,就是8bit的原因。

然后我们获取图像的大小,用H,W,Z三个变量接收,其中H接收了图片的高度(也就是垂直长度),W接收了图片的宽度(水平长度),然后Z接收了图片的颜色值。

然后我们将图像转换成双精度类型 I,这是因为使用双精度可以仿真在转换过程中发生精度损失的问题,也是方便我们进行转换。转换之后,我们可以看到unit8的类型别我们转换成了double类型。

接着,我们构造一个图像res矩阵,这个图像首先进行归一化,也就是让里面的元素全部为1,对于图像,就是一张白色的图片了。这个图像主要是用来“保存”我们进行位移后的图像。

然后我们就设置平移量、构造平移变换矩阵。这个矩阵我们根据前面的理论部分可以得到。

接着便是重点了,进行平移变换。我们来一句一句解读这个循环。当x0=1,y0=1时,得到第一个像素的位置,也就是(x0,y0)这个像素,然后将这个像素位置进行缓存,也就是构造一个矩阵temp,即理论中的:

产品讲技术 | 带你看懂什么是计算机视觉(一)

然后进行位置转换,也就是进行矩阵相乘,用变换矩阵乘以原像素矩阵,得到了变换后像素矩阵:

产品讲技术 | 带你看懂什么是计算机视觉(一)

接着,我们需要把变换后的像素位置“提取”出来,用x1,y1进行存储,为什么要获取位置呢?

这是因为我们要判断这个像素是否越界了,也就是进行平移之后,得到的这个像素位置是否还存在显示区域里面,也就是我们的:

if(x <= H) & (y <= W) & (x >= 1) & (y >= 1)语句

当还在显示区域里面时,我们要进行移位显示:

res(x1,y1,:)= I(x0,y0,:);%进行图像平移,颜色赋值

这个语句的含义是,把I中的RGB值(也就是颜色值)赋值给res,也就是说,前面矩阵相乘只是移动的像素位置,但是颜色没有进行移动,这里进行图像颜色的平移,当x0=1,y0=1时,把该点的位置图像颜色进行移动过去。

当x0=1,y0=2时,移动第二点。我们可以看到,这里的代码是:从左到右平移,也就是先进行宽度的平移;从上到下,进行高度的平移。当两个循环完成之后,图像也就像平移完成了。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读