前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图像分析及简单算法

图像分析及简单算法

作者头像
用户7573907
发布2020-07-20 15:37:34
1.1K0
发布2020-07-20 15:37:34
举报

图片是由很多像素点组成,每个像素点是由[R,G,B]三原色组成,每一种原色用范围在0~255的整数表示。所以图像分析实际上是对这些数据的分析及计算

01

图片:3维数据矩阵

图1是一张彩色图片。读取该图片的数据后,会得到三个20✖️30的矩阵(如图2,图3,图4)。

图1

其中,20是高度(Height)的像素点数,30是宽度(Width)的像素点数。

举个例子:第3行第12列像素点的R,G,B值分别是:[182, 188, 36],那么这个像素点的颜色是暗黄色。

图2

图3

图4

为了显示更直观,将R,G,B矩阵显示为图5,图6,图7的柱状图形式。

图5

图6

图7

图像分析,是对R,G,B矩阵某一行、某一列或某一区域数据的分析。

02

算例:停车位边界判断

图8是一张停车位的照片。读取该图片的数据后,会得到三个664✖️890的矩阵(X: Height方向664个像素,Y: Width方向890个像素)。

图8

因为图8的R矩阵中白色数据比较明显,故以下是基于R矩阵的计算。

对图8的R矩阵各行分别沿Y Width方向取值,并采用R值Trig Level=230为触发值,向右寻找触发点,发现第一个触发点后即退出寻找。

图9是分别对第200行,400行,600行寻找触发点的举例。每行只寻找一个触发点,即图中红色圆点。第600行没有找到触发点。

图9

图10右图是各行向右查询找到的触发点(某些行无触发点),图10左图是将触发点连线,寻找触发点规律。

图10

从图10中可以看出,为了找到停车位的左侧边界,我们需要去掉一些干扰的触发点。

本例中采用的方法是:对触发点的Y值进行求导,然后选取求导值较小的点,如图11最右图。

图11

然后对图11中筛选的触发点再次求导,再次筛选,即得到图12中的第二次筛选的触发点,如图12最右图。

图12

将图11,图12的筛选过程重复多次,如图13,可以看出从第10次筛选开始,结果已经收敛。

图13

图14左图是初次计算的触发点,图14右图是最终筛选的触发点。

图14

对图14右图筛选后的多个触发点进行曲线拟合(本例采用y=ax+b形式进行一次线性拟合),得到结果见图15。

图15

图16是图15的细节部分,可见线性拟合和离散点的关系。

图16

至此,左侧边界直线(也可以进行2次曲线拟合)确定。

同样的,右侧边界采用各行向左⬅️搜寻的方法,最终得到停车位的两侧边界曲线,见图17。

图17

03

算例总结

以上仅是个图像识别的简单算例,计算思路及步骤如下:

1)寻找RGB矩阵中图像特征明显的矩阵,或是处理灰度矩阵:Z=0.299R+0.587G+0.114B, (计算后需要对Z取整)。

2)对矩阵的某行,某列,或某区域进行信号分析。

3)通过各种计算得到特征位置或特征数值。

04

应用展望

图像识别已被广泛使用,本篇只是简单介绍一下最简单的算例及原理,真正的应用远比本例要复杂。

程序的计算速度和容错性是互相矛盾的。图片特性稳定,则程序简单,计算速度较快;图像特性变化大,则要求程序具有更强的容错能力,程序就越复杂,计算越慢。

目前比较流行的机器学习等算法在图像识别中已广泛应用,使用者不需要对图像特征进行深入了解。但是,基本原理还是需要了解一下~,因为……机器学习实在看不懂~

个人认为,随着穿戴设备,机器学习人工智能,计算速度,网络传输速度的迅速发展,相信会有类似Google glass的产品出现(虽然glass没能量产),从而实现人眼视觉的共享及辅助决策,从而再次改变人类生活。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信号分析应用及算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像识别
腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档