DSP VLIB实验
声明:引用请注明出处http://blog.csdn.net/lg1259156776/
引言
在dsp开发中,为了节省开发时间和难度,TI将一些成熟的算法封装为模块,供开发者使用。如果能充分利用这些算法支持库,对于加快dsp开发进程与提高代码质量、稳定性有非常大的帮助。VLIB是一个经过深入优化的计算机视觉算法库,支持C64x和C64x+处理器内核,提供了如下图所示的功能函数接口。
下面是在DSP6455上进行的测试实验总结:
Canny 算子
好的 检 测 : 算法能够尽可能多地标识出图像中 的实际边缘 。
好的定位: 标识出的边缘要与实际图像中的实际边缘尽可能接近 。
最小响应 : 图像中的边缘只能标识一次,并且可能存在的 图像噪声不应标识为边缘 。
在图像的边缘检测中,抑制噪声与边缘精确定位是无法同时满足的,canny算子致力于在抗噪声和精确定位之间寻求最佳折衷方案。
利用Canny算子检测图像边缘的步骤如下:
高斯图像平滑
计算梯度幅值与方向
非极大值抑制
滞后阈值算法(双阈值算法)
用我的理解总结为:对一副图,先用高斯平滑滤波,然后计算梯度,用非极大值抑制的方法去除假边界,再用两个阈值-高阈值和低阈值分别对非极大值抑制后的图像进行处理,得到两幅结果。高阈值图像是为了尽可能保证边缘的正确无误,并不惜以某些边缘点损失为代价。低阈值图像是为了尽可能弥补高阈值对实际边缘点的丢弃。最后,将高阈值图像的边缘连接成轮廓,当到达轮廓短点时,在低阈值图像该点位置的8邻域内寻找可以连接到轮廓上的边缘。不断地重复这个步骤直到将图像2连接起来为止。一般取高阈值为低阈值的2倍左右。
Hough直线检测
Hough变换时图像处理中检测图像中集合图形的基本算法,它可以检测出图像中的直线、椭圆等规则图像,广义Hough变换还可以检测不规则边界。
直角坐标系中的共线点对应着参数空间的共点线。
形态学腐蚀和膨胀
先腐蚀后膨胀称为开(open)
一般来说,开运算能够去除孤立的小点,毛刺和小桥(即连通两块区域的小点),而总的位置和形状不变。这就是开运算的作用。
先膨胀后腐蚀称为闭(close)
一般来说,闭运算能够填平小湖(即小孔),弥合小裂缝,而总的位置和形状不变。这就是闭运算的作用
联通区域标记
联通区域直观地理解为图像中独立的物体,为这些联通区域分配以不同的标号,就是联通区域标记的目的。此外,这些区域可以借助其内部特征来描述,例如:区域面积和区域重心。
算法思路:类似于区域生长法,以8邻域联通区域标记为例,对图像扫描,找到一个非背景像素,分配一个未使用的标记,对该点8邻域内的非背景像素分配以同样的标记符,接下来对这些像素的8邻域内的非背景像素作同样的操作,一次次的迭代下去,直到这些点的8邻域再也找不到非背景像素为止。然后继续扫描,找到一个新的未被标记的非背景像素,重复以上操作,直到再也找不到任何未被标记的非背景像素为止。
常用两次扫描法
彩色空间
主要是在视频处理或者颜色跟踪等遇到色彩空间的转换,色彩空间包括HSI、HSV、RGB、CMYK、YUV、Lab等。最常用的是RGB空间,从RGB24到HSI的转换公式:
积分图像
积分图像是一种用于快速计算图像窗口的灰度值总和或灰度均值的一种图像中间表示,此外,还可以用于快速计算图像窗口的灰度方差,以及实现图像预处理中的快速灰度分布标准化和目标任务识别中的快速模板匹配。在计算图像特征时是非常重要的中间步骤。在人脸检测中应用较多。
这里面用的比较多,也比较熟悉,不再赘述。
图像金字塔
图像金字塔是一种数据结构,图像金字塔分解可以非常好的实现图像中前景与背景的分割,甚至可以用于包含多个前景的复杂图片。从原始图像中挑选可以代表某个小块区域的点作为节点,使这些节点构成更上一层的图像,并一直迭代下去,图的节点自上而下逐渐减少,形成金字塔形状,与小波逐级分解类似,金字塔是一种由精细到粗糙的策略。主要应用在图像或者目标不同尺度上的应用。
这个在进行学习光流法的时候总结过,这里也不再多说。
高斯和梯度金字塔
高斯金字塔是图像金字塔的一种。它的第0级包含了原始图像,第一级包含了2x2下采样后的图像,第二级包含了进一步2x2下采样后的图像,以此类推。经常被用在检测及追踪应用中,以减少冗余数据。
用于图像分解与重构的是拉普拉斯金字塔,高斯金字塔分解是拉普拉斯金字塔分解中的一步。
拉普拉斯塔的分解过程可表示为:低通滤波→下采样(缩小尺寸)→内插(放大尺寸)→带通滤波(图像相减)。
拉普拉斯塔的重构
这个在调研光流法的时候也进行过相关的学习,所以,可以再去查看。
IIR滤波
IIR必须采用递归结构,极点在单位圆内,否则系统不稳定。IIR滤波器在一系列图像处理操作中有广泛的应用,比如图像平滑,梯度及边缘计算中。
不再详表!
角点检测
Harris角点检测。这个应该更加熟悉才是。对于Lucas Harris光流法好像是用的就是这种角点吧!
非极大值抑制
在进行Canny算子的试验中已经用过了。
一些视频算法的结果是产生一个投票空间,对投票空间中的局部最大值的寻找可以用非极大值抑制来实现。
光流法
最流行的Lucas-Kanade算法:LK算法。
灰度直方图统计
直方图通常被用来对输入数据的分布情况进行离散测量,通过使用加权直方图,可以确定输入数据中某些量的重要程度。直方图计算很简单,先由指定的计算范围,并将范围划分成若干个相邻单元(bin),接下来统计落入到各个相邻单元里的输入数据的个数。
L1距离和B距离
在数学和工程应用中会用到各种各样的距离,L1距离,L2距离,切比雪夫距离,马氏距离等,这些距离用来反映不同事物的差距,如点、面、概率分布等。
L1距离也成为街区距离,曼哈顿距离或者绝对值距离,L1范数。
B ha tt a c h a ry y a 距 离, 又 称巴 氏 距 离 或 B 距 离,在统计学中,用于测量两个离散概率分布的相似性,通常形况下,巴氏距离用来分类中测量两类之间的可分离性。
卡尔曼滤波器
这个在以前的应用中相当多,所以,具体原理不用分析。对于如何在DSP中进行使用,可以后续具体用到时在按照例程进行修改。
加权移动平均和加权移动方差
加权移动平均和加权移动方差的应用范围很广,在数字图像处理中可以应用于运动目标检测等领域。运动目标检测的背景提取过程中,由于光照等因素的影响,需要对背景信息进行及时更新,这就要用到它。为了除去前景物体对背景的影响,对加权移动平均和加权移动方差的更新只发生在背景部分,即前景区域被标记为0的位置。
静态背景提取
用来分割静态图像的背景和前景。如果背景静态,那么有任何意义的运动的物体都是前景。
高斯混合背景模型
智能监控的中心内容是运动目标检测,关键是背景目标的提取,建模背景的目的是从当前帧提取前景,使背景更接近于当前帧的背景,高斯混合模型是诸多模型中建模效果最好的方法之一。
高斯混合模型的思路:对每个像素,考察它的均值与方差,如果与某个高斯模型匹配(偏差小于马氏距离阈值),则该点划分到这个模型中去,同时,这个模型的三个参数:均值方差和权值都要更新,如果没有高斯模型与该点匹配,则舍掉这些高斯模型中最不可能的哪一个(出场率最低的那个),并以该点建立新的高斯模型。
2015-9-23 艺少
DSP VLIB实验的更多相关文章
- 【DM642学习笔记二】dsp基础实验:发光二级管的显示 led.c
1,OSDFPGA配置一个专用的8位寄存器控制指示灯亮灭,访问地址为90080017h,由电路图可知低电平点亮. 2,程序运行时,可直接editmemory.即修改90080017h地址的值(可在Ed ...
- FPGA+ARM or FPGA+DSP?
网上有人说.现在的FPGA,ARM功能已经强大到无需DSP协助处理了,未来DSP会不会消声灭迹?是DSP取代FPGA和ARM,还是ARM,FPGA取代DSP呢?担心好不容易学精了DSP,结果DSP变成 ...
- dsp实验一 常见问题教程
1.选择合适阅读材料:卖油翁.将进酒,等. 2.录音设备三选一:某种电脑声卡+线上convert/楼月mp3录音软件+格式工厂(我选的)/Matlab (注:这是目前已知的方法,我只用了第二个) 3. ...
- 嵌入式驱动开发之dsp 算法优化vlib emcv---算法优化
http://www.opencv.org.cn/forum.php?mod=forumdisplay&fid=9
- 【玩转单片机系列002】 如何使用STM32提供的DSP库进行FFT
前些日子,因为需要在STM32F103系列处理器上,对采集的音频信号进行FFT,所以花了一些时间来研究如何高效并精确的在STM32F103系列处理器上实现FFT.在网上找了很多这方面的资料做实验并进行 ...
- 【转】DM8168添加DSP音频编解码算法--集成现有voice或audio codec
本文根据“How to integrate audio/voice in RPE in EZSDK.pdf”整理,建议读者直接下载,参考原文件.原文件下载链接: http://download.csd ...
- 8051、ARM和DSP指令周期的测试与分析
在实时嵌入式控制系统中,指令周期对系统的性能有至关重要的影响.介绍几种最常用的微控制器的工作机制,采用一段循环语句对这几种微控制器的指令周期进行测试,并进行分析比较.分析结论对系统控制器的选择有一定的 ...
- 基于DSP的疲劳驾驶检测系统的研究
原地址:http://www.chinaaet.com/article/index.aspx?id=114534 关键词:疲劳检测DSP亮瞳效应PERCLOS 摘 要: 针对汽车驾驶员疲劳驾驶检测的 ...
- 【iCore4 双核心板_ARM】例程三十八:DSP MATH库测试
实验现象: 核心代码: int main(void) { /* USER CODE BEGIN 1 */ int i,j; int res; ]; ; /* USER CODE END 1 */ /* ...
随机推荐
- js中数组元素的添加和删除
js中数组元素常用添加方法是直接添加.push方法以及unshift方法 删除方法则是delete.pop.shift 集修改方法为一身的则是splice 1.添加: (1)直接添加通常都是这样 va ...
- 学习了武沛齐讲的Day10-完
int 整形 int 将字符串转换为数字 x.bit_length() ===== 当前数字的二进制,至少用n位表示 str 字符串 x.capitalize()== ...
- reCAPTCHA打不开的解决方法
reCAPTCHA打不开的解决方法 by WernerPosted on2018年1月8日 reCAPTCHA是国外广泛使用的验证码,但由于一些原因国内无法使用. 观察使用reCAPTCHA的网站,发 ...
- jQuery相关方法2
一.元素样式设置的方式(css,json键值对,链式编程) <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js ...
- ZOJ2314 Reactor Cooling(无源汇上下界可行流)
The terrorist group leaded by a well known international terrorist Ben Bladen is buliding a nuclear ...
- TensorFlow(十四):谷歌图像识别网络inception-v3下载与查看结构
上代码: import tensorflow as tf import os import tarfile import requests #inception模型下载地址 inception_pre ...
- scala 递归读取文件夹下所有的指定后缀的文件
def getFile(file:File): Array[File] ={ val files = file.listFiles().filter(! _.isDirectory) .filter( ...
- 命令行中生成 md5、sha1、sha256 校验和
在测试过程中有时候需要对某个文件Hash值进行校验,如接口返回一个文件下载地址及hash值,那么除了对比平台端展示和接口下发是否一至,还有一个办法就是命令行使用相关命令 1.Window 注:我是在g ...
- Python基础之各种推导式玩法
一.推导式套路 除了我们之前所学习的列表推导式和生成器表达式之外,还有字典推导式.集合推导式等等. 下面就是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式. variable = [out ...
- C# 获取网络文件 批量压缩成 文件流 并下载 压缩包
需要的DLL : ICSharpCode.SharpZipLib.dll JS部分 //下载所有文件的 压缩包 function DownAllFile() { //zip文件名 var zipNam ...