标题 | Canny算子在DSP上的实现及优化 |
范文 | 徐克强等 摘 要: 为了在DSP平台实现细胞图像快速分割,详细分析Canny算子原理,结合TI DSP TMS320C6678处理器特性,实现了算法移植。针对与外部存储器图像数据交互,改变以往对图像逐灰度值进行访问的方式, 设计了矢量化数据打包方法处理高斯滤波来提高并行运算。且在梯度计算、阈值计算过程中,采用宽存储器访问方法提高读写外部存储器效率。结果表明设计的优化方法在不改变分割效果前提下改善了算子速度,可为工程人员在DSP平台进行算法移植与优化提供借鉴。 关键词: 图像处理; Canny算子; DSP优化; 图像快速分割 中图分类号: TN919?34 文献标识码: A 文章编号: 1004?373X(2014)06?0008?04 0 引 言 Canny算子属于图像处理和计算机视觉中的重要研究领域——边缘检测问题。边缘检测对后续的图像分析和识别意义重大。例如,在镜检细胞图像识别中,边缘检测就是要把从采集到的图像中各种有形成分准确分离出来,进入后端进行特征建模与识别,边缘检测是整个系统的关键和核心,承上启下,好的检测效果是系统实现前提[1],快速检测是智能系统的内在要求。 John F.Canny将边缘检测问题归结为检测图像梯度函数的极大值问题,提出了边缘检测最优算法的三个评价准则,并基于该准则开发了一种多级边缘检测算法。目前,Canny算子在生物医学,智能监控,航空航天等领域应用广泛,并由学者和工程人员不断加以改进和优化。例如韩慧妍等针对高斯滤波器的方差以及滞后阈值的选择需要人工指定的问题,将形态学平滑和Otsu(最大类间方差法)方法引入Canny算子[2]。洪运国针对间断的边缘问题,提出矩量保持法来求取最优阈值等[3]。 众多Canny的改进都体现在算法思想上,并在Windows操作系统和通用PC中得到广泛应用,然而,在嵌入式平台如DSP加以应用时,很少细致深入地研究实用有效的优化方法使得Canny算子在DSP平台高效率运行。例如金泽安在其学位论文中,详尽设计了基于DSP的红细胞图像处理系统,但在图像处理算法性能优化方面只做了粗略的优化方法介绍[4]。通过详细分析Canny算子原理基础上,结合DSP特性,将矢量化打包数据处理在高斯滤波过程加以应用,提高运算并行性,并在边缘计算过程中,灵活地使用对齐和非对齐的宽存储器访问,推导出梯度和方向的等价计算公式,四邻域、八邻域的等价的连续点四领域、八邻域模板。 1 Canny算法实现步骤 经典著名的Canny准则是指: (1) 完全性。对边缘检测的错误率尽可能低。 (2) 定位性。检测结果和实际情况尽可能接近。 (3) 最小性。图像中的边缘应该只被检测一次[5]。 基于边缘检测效果的三准则,结合原始Canny算子及改进思想,实现了显微细胞图像Canny分割,算法思想和步骤如下描述: Step 1:用二维高斯滤波模板进行卷积以消除杂点,采用的模板计算公式如下: 滤波过程即将原输入图像与高斯模板进行卷积,滤波长度依据参数sigma而定,用公式表示如下: Step 2:计算差分图像。一般采用2×2邻域范围,原图中每一点水平方向和垂直方向的差分计算公式如下: 式中IG为差分图像的输入,即二维高斯滤波后的结果;Δx为水平方向差分;Δy为垂直方向差分。 Step 3:计算弧度和梯度,公式如下: Step 4:对梯度幅值进行非最大值抑制。若某个像素的灰度值与其梯度方向上前后两个像素的灰度值相比不是最大的,那个这个像素置为255(白点),即不是边缘 。 Step 5:使用累计直方图计算两个阈值。凡是大于高阈值的一定作为边缘,像素点置0;凡是小于低阈值的一定不是边缘,像素点置255;若检测结果位于两者之间,检测其邻接像素中超过高阈值的边缘像素:存在则为边缘点,否则非边缘点[6]。 以上步骤结束,由输入的原图像得到一副二值边缘图。 2 Canny算子的DSP优化 在DSP平台编程实现和优化Canny算子时,需要根据特定处理器的特点来展开,主要参考数据总线宽度,核内功能单元、寄存器等。 2.1 TMS320C6678特性和优化概述 TMS320C6678在单芯片上集成8颗1.25 GHz C66X核,支持定点运算,字宽一般为16位;支持浮点运算,字宽可为32位、40位、48位、64位。每个核具有8个功能单元(.M1,.L1,.D1,.S1.,M2,.L2,.D2,.S2),2个寄存器组(A,B两组64个寄存器)和2条数据通路。每个C66X核的.M单元在每个时钟周期内能够执行以下定点操作:4个32×32 b乘法,16个16×16 b乘法,4个16×32 b乘法,8个8×8 b乘法, 4个16×16 b乘法和加减运算。.L和.S单元支持64 b操作数据,如此可以容纳多算术、逻辑和数据打包指令并行处理。还可以通过长型操作数,最长可达128位,完成双倍数据的转换[7]。 在DSP平台上,数据传输的设计是图像系统的关键环节,CPU处理任务时的速度很大程度都受到外部存储器的限制[8]。TMS320C6678片内存储器含寄存器、Cache、L2、共享存储器,访问速度快,然而容量却非常有限,当图像数据量较大时,无法将待分割的整幅图像和一些中间结果置于片内进行处理。例如对800×600、24位BMP图像数据处理,其大小为1.37 MB,考虑到C6678片内存储器的大小,分割的图像数据和中间结果分布在外围DDR,因此,在任务处理过程中,CPU直接访问外部存储器接口的情况下,频繁与外部存储器发生数据交互大大影响程序的执行效率。 针对以上问题,实现了基于矢量化打包数据处理实现预处理过程(高斯滤波)提高算法的并行能力,在分割过程(边缘计算)中灵活运用对齐和非对齐的宽存储器访问提高存储器读/写效率,另外,还参考的一般的优化方法,如避免跳转,展开不必要的循环等。 2.2 矢量化打包数据处理高斯滤波 高斯滤波是分割处理一个重要过程,在实现过程中,将输入图像与高斯模板进行卷积,横向滤波时的单个像素点的滤波的滤波结果示意图如图1所示,纵向过程与之类似。 采用乘累加容易实现高斯滤波,其伪代码如下(横向为例): 采用以上方式实现的高斯滤波,代码包含三重循环,代码前后相关性大,不利于编译器优化,每计算出单点的滤波结果,需要访存N(N为滤波器长度)。针对该过程,采用矢量化的打包数据处理对高斯滤波进行优化,其根本思想是利用TMS320C6678在一个时钟周期内能够执行多个乘法运算,从而将滤波展开成多操作并行的代码结构,另外,利用高斯模板的对称结构,将两次乘法运算优化为一次加法和乘法。具体实现步骤如下描述: (1) 为更有效地读取数据,读取和存储必须向量化。待处理数据最好在内存空间连续存储,若不连续,采用额外的数据打包操作,准备好数据。 (2) 在读取数据时,需要将一次并行处理的数据全部读入,这一步需要采用宽存储器对连续数据进行访问,具体宽度根据需要并行的操作、处理器并行操作的能力、处理器单次最大访问宽度而定。 最后,将运算相关的指令合并成intrinsic函数[9},以充分利用C66x的特性。intrinsics函数直接调用某些汇编语句,其前缀以下划线表明,和普通函数调用方法相同。如_mpy2实现将输入的两个操作数的高低16位相乘,_swap4将操作数高低半字中的每一对字节分别做大端终结交换,_dopt2实现低16位乘积和高16位乘积相加[10]。实现的矢量化打包数据处理高斯滤波伪采用以上方法,分解了滤波长度带来的第三重循环,多次调用内联函数,执行效率高,充分利用C66x在一个周期内,完成多个16×16的乘法运算的性能,单像素结果需要进行7次乘累加的操作,可在一个周期内并行完成,以上优化思想和代码结构在DSP平台运行,极具优势。另外,进行纵向滤波处理,由于输入图像在内存一般采用按行优先存储,需要采用额外的数据打包处理,其他过程类似。 2.3 宽存储器访问计算边缘 宽长度存储器访问是指充分利用C6x系列DSP一次读取32 位数的特性,并利用一个指令周期能读取多个数据的特点在DSP处理过程中,尽可能多的将所需短字长操作数读入,如一次读入2×32 b,4×16 b,甚至8×8 b等,可成倍减少与外部存储器发生交互,是DSP优化过程中一个重要的优化手段。在实现C6678 DSP平台的Canny算法时,不止是在高斯滤波的处理过程中,计算图像梯度信息,进行非最大抑制等过程中也同样采用宽长度存储器访问,脱离传统的按单位像素交互图像数据的思维和编程方式,结合具体芯片的处理性能和应用程序要求实现和优化Canny算子,例如C6678甚至支持128 b的超长数据,在访问和保存中间图像结果时,具体采用的数据位宽需要结合系统对精度的要求,当用16位来表示梯度信息,即C语言中的short类型,采用64 b宽存储器访问,便推导出梯度计算公式的等价公式如下: 采用宽存储器非对齐数据访问可以从DSP内存中任意起始地址开始读取和存储2 B,4 B,8 B的数据,分别使用(&)_mem2_(const),(&)_mem4_(const),(&)_mem8_(const)函数。如此,便可以将图像处理领域中频繁使用的四邻域模板进行推导,处理具体任务时,将四领域模板升级为连续四点四邻区,连续八点四邻区,其示意图如图3所示。 图3(a)为四邻域模板示意图, (b)和(c)为分别采用4 B和8 B访问时,邻域模板示意图。对(b)和(c)图像进行处理的前提和依据是:连续4点的四邻域在内存存储中也是连续的(不包含边界),连续访问的4点,在物理位置上其相关邻点也连续。如此,可成倍节省外部存储器访问操作时间。访问(a)的四邻域点,需要4次仿存,采用推导出等价模板后,处理连续四点和八点只需4次访问。在Canny边缘计算过程中,需对输入逐点遍历,如计算梯度时遍历整幅图像灰度,非最大抑制时遍历梯度和方向等,以上等价模板思想,当需要处理图像的八邻域或在其他比较规整的膨胀和腐蚀模板同样适应。 3 硬件仿真结果 硬件平台采用TMS320C6678LE评估板,开发软件采用CCS V5.3,量化位数16位,对一副800×600的显微细胞图像进行处理,分割效果良好,见图4。此外,在优化前后,分别对Canny算法步骤进行分析和测试,耗时统计采用TSCL和TSCH寄存器,结果见表1,所统计的结果均是在勾选相同的编译器优化选项后的比对。 4 结 语 在DSP平台中,采用以上思想进行优化后,对同样的图像进行处理,相对于原算法,性能可以提高近3倍,在差分图像计算时,效果极为明显。在DSP系统设计中,频繁地直接外部存储器接口访问,是系统性能提升的瓶颈,优化结果表明,采用数据打包处理和宽存储器访问方式能在一定程度上解决该问题,虽不能实现数量级的优化,但研究的优化方法同样可以在工程中作为辅助的优化策略,并且具有实际优化效果。 图4 分割前后的显微细胞图像 表1 耗时测试仿真结果 cycle 参考文献 [1] 梁光明.体液细胞图像有形成分智能识别关键技术研究[D].长沙:国防科技大学,2008. [2] 韩慧妍,韩燮.形态学和Otsu方法在Canny边缘检测算子中的应用[J].微电子学与计算机,2012,29(2):156?159. [3] 洪运国.基于改进Canny 算子和神经网络的人体行为识别模型[J].计算机工程与应用,2013,49(8):202?205. [4] 金泽安.基于DSP红细胞图像处理技术[D].南京:南京理工大学,2009. [5] 孙兴华,郭丽.数字图像处理:编程框架、理论分析、实例应用和源码实现[M].北京:机械工业出版社,2012. [6] 左飞,万晋森,刘航.数字图像处理原理与实践:基于Visual C++开发[M].北京:电子工业出版社,2011. [7] Texas Instruments. TMS320C66x DSP CPU and instruction set reference guide [M]. USA: TI, 2010. [8] QURESHI Shehrzad. Embedded image processing on the TMS320C6000? DSP: examples in code composer studio and MATLAB [M]. [S.l.]: Springer Verlag, 2005. [9] Texas Instruments. TMS320C6000系列DSP编程工具与指南[M].田黎育,何佩琨,朱梦宇,译.北京:清华大学出版社,2006. [10] Texas Instruments. Multicore fixed and floating?point digital signal processor TMS320C6678 data manual [M]. USA: TI, 2013. 针对以上问题,实现了基于矢量化打包数据处理实现预处理过程(高斯滤波)提高算法的并行能力,在分割过程(边缘计算)中灵活运用对齐和非对齐的宽存储器访问提高存储器读/写效率,另外,还参考的一般的优化方法,如避免跳转,展开不必要的循环等。 2.2 矢量化打包数据处理高斯滤波 高斯滤波是分割处理一个重要过程,在实现过程中,将输入图像与高斯模板进行卷积,横向滤波时的单个像素点的滤波的滤波结果示意图如图1所示,纵向过程与之类似。 采用乘累加容易实现高斯滤波,其伪代码如下(横向为例): 采用以上方式实现的高斯滤波,代码包含三重循环,代码前后相关性大,不利于编译器优化,每计算出单点的滤波结果,需要访存N(N为滤波器长度)。针对该过程,采用矢量化的打包数据处理对高斯滤波进行优化,其根本思想是利用TMS320C6678在一个时钟周期内能够执行多个乘法运算,从而将滤波展开成多操作并行的代码结构,另外,利用高斯模板的对称结构,将两次乘法运算优化为一次加法和乘法。具体实现步骤如下描述: (1) 为更有效地读取数据,读取和存储必须向量化。待处理数据最好在内存空间连续存储,若不连续,采用额外的数据打包操作,准备好数据。 (2) 在读取数据时,需要将一次并行处理的数据全部读入,这一步需要采用宽存储器对连续数据进行访问,具体宽度根据需要并行的操作、处理器并行操作的能力、处理器单次最大访问宽度而定。 最后,将运算相关的指令合并成intrinsic函数[9},以充分利用C66x的特性。intrinsics函数直接调用某些汇编语句,其前缀以下划线表明,和普通函数调用方法相同。如_mpy2实现将输入的两个操作数的高低16位相乘,_swap4将操作数高低半字中的每一对字节分别做大端终结交换,_dopt2实现低16位乘积和高16位乘积相加[10]。实现的矢量化打包数据处理高斯滤波伪采用以上方法,分解了滤波长度带来的第三重循环,多次调用内联函数,执行效率高,充分利用C66x在一个周期内,完成多个16×16的乘法运算的性能,单像素结果需要进行7次乘累加的操作,可在一个周期内并行完成,以上优化思想和代码结构在DSP平台运行,极具优势。另外,进行纵向滤波处理,由于输入图像在内存一般采用按行优先存储,需要采用额外的数据打包处理,其他过程类似。 2.3 宽存储器访问计算边缘 宽长度存储器访问是指充分利用C6x系列DSP一次读取32 位数的特性,并利用一个指令周期能读取多个数据的特点在DSP处理过程中,尽可能多的将所需短字长操作数读入,如一次读入2×32 b,4×16 b,甚至8×8 b等,可成倍减少与外部存储器发生交互,是DSP优化过程中一个重要的优化手段。在实现C6678 DSP平台的Canny算法时,不止是在高斯滤波的处理过程中,计算图像梯度信息,进行非最大抑制等过程中也同样采用宽长度存储器访问,脱离传统的按单位像素交互图像数据的思维和编程方式,结合具体芯片的处理性能和应用程序要求实现和优化Canny算子,例如C6678甚至支持128 b的超长数据,在访问和保存中间图像结果时,具体采用的数据位宽需要结合系统对精度的要求,当用16位来表示梯度信息,即C语言中的short类型,采用64 b宽存储器访问,便推导出梯度计算公式的等价公式如下: 采用宽存储器非对齐数据访问可以从DSP内存中任意起始地址开始读取和存储2 B,4 B,8 B的数据,分别使用(&)_mem2_(const),(&)_mem4_(const),(&)_mem8_(const)函数。如此,便可以将图像处理领域中频繁使用的四邻域模板进行推导,处理具体任务时,将四领域模板升级为连续四点四邻区,连续八点四邻区,其示意图如图3所示。 图3(a)为四邻域模板示意图, (b)和(c)为分别采用4 B和8 B访问时,邻域模板示意图。对(b)和(c)图像进行处理的前提和依据是:连续4点的四邻域在内存存储中也是连续的(不包含边界),连续访问的4点,在物理位置上其相关邻点也连续。如此,可成倍节省外部存储器访问操作时间。访问(a)的四邻域点,需要4次仿存,采用推导出等价模板后,处理连续四点和八点只需4次访问。在Canny边缘计算过程中,需对输入逐点遍历,如计算梯度时遍历整幅图像灰度,非最大抑制时遍历梯度和方向等,以上等价模板思想,当需要处理图像的八邻域或在其他比较规整的膨胀和腐蚀模板同样适应。 3 硬件仿真结果 硬件平台采用TMS320C6678LE评估板,开发软件采用CCS V5.3,量化位数16位,对一副800×600的显微细胞图像进行处理,分割效果良好,见图4。此外,在优化前后,分别对Canny算法步骤进行分析和测试,耗时统计采用TSCL和TSCH寄存器,结果见表1,所统计的结果均是在勾选相同的编译器优化选项后的比对。 4 结 语 在DSP平台中,采用以上思想进行优化后,对同样的图像进行处理,相对于原算法,性能可以提高近3倍,在差分图像计算时,效果极为明显。在DSP系统设计中,频繁地直接外部存储器接口访问,是系统性能提升的瓶颈,优化结果表明,采用数据打包处理和宽存储器访问方式能在一定程度上解决该问题,虽不能实现数量级的优化,但研究的优化方法同样可以在工程中作为辅助的优化策略,并且具有实际优化效果。 图4 分割前后的显微细胞图像 表1 耗时测试仿真结果 cycle 参考文献 [1] 梁光明.体液细胞图像有形成分智能识别关键技术研究[D].长沙:国防科技大学,2008. [2] 韩慧妍,韩燮.形态学和Otsu方法在Canny边缘检测算子中的应用[J].微电子学与计算机,2012,29(2):156?159. [3] 洪运国.基于改进Canny 算子和神经网络的人体行为识别模型[J].计算机工程与应用,2013,49(8):202?205. [4] 金泽安.基于DSP红细胞图像处理技术[D].南京:南京理工大学,2009. [5] 孙兴华,郭丽.数字图像处理:编程框架、理论分析、实例应用和源码实现[M].北京:机械工业出版社,2012. [6] 左飞,万晋森,刘航.数字图像处理原理与实践:基于Visual C++开发[M].北京:电子工业出版社,2011. [7] Texas Instruments. TMS320C66x DSP CPU and instruction set reference guide [M]. USA: TI, 2010. [8] QURESHI Shehrzad. Embedded image processing on the TMS320C6000? DSP: examples in code composer studio and MATLAB [M]. [S.l.]: Springer Verlag, 2005. [9] Texas Instruments. TMS320C6000系列DSP编程工具与指南[M].田黎育,何佩琨,朱梦宇,译.北京:清华大学出版社,2006. [10] Texas Instruments. Multicore fixed and floating?point digital signal processor TMS320C6678 data manual [M]. USA: TI, 2013. 针对以上问题,实现了基于矢量化打包数据处理实现预处理过程(高斯滤波)提高算法的并行能力,在分割过程(边缘计算)中灵活运用对齐和非对齐的宽存储器访问提高存储器读/写效率,另外,还参考的一般的优化方法,如避免跳转,展开不必要的循环等。 2.2 矢量化打包数据处理高斯滤波 高斯滤波是分割处理一个重要过程,在实现过程中,将输入图像与高斯模板进行卷积,横向滤波时的单个像素点的滤波的滤波结果示意图如图1所示,纵向过程与之类似。 采用乘累加容易实现高斯滤波,其伪代码如下(横向为例): 采用以上方式实现的高斯滤波,代码包含三重循环,代码前后相关性大,不利于编译器优化,每计算出单点的滤波结果,需要访存N(N为滤波器长度)。针对该过程,采用矢量化的打包数据处理对高斯滤波进行优化,其根本思想是利用TMS320C6678在一个时钟周期内能够执行多个乘法运算,从而将滤波展开成多操作并行的代码结构,另外,利用高斯模板的对称结构,将两次乘法运算优化为一次加法和乘法。具体实现步骤如下描述: (1) 为更有效地读取数据,读取和存储必须向量化。待处理数据最好在内存空间连续存储,若不连续,采用额外的数据打包操作,准备好数据。 (2) 在读取数据时,需要将一次并行处理的数据全部读入,这一步需要采用宽存储器对连续数据进行访问,具体宽度根据需要并行的操作、处理器并行操作的能力、处理器单次最大访问宽度而定。 最后,将运算相关的指令合并成intrinsic函数[9},以充分利用C66x的特性。intrinsics函数直接调用某些汇编语句,其前缀以下划线表明,和普通函数调用方法相同。如_mpy2实现将输入的两个操作数的高低16位相乘,_swap4将操作数高低半字中的每一对字节分别做大端终结交换,_dopt2实现低16位乘积和高16位乘积相加[10]。实现的矢量化打包数据处理高斯滤波伪采用以上方法,分解了滤波长度带来的第三重循环,多次调用内联函数,执行效率高,充分利用C66x在一个周期内,完成多个16×16的乘法运算的性能,单像素结果需要进行7次乘累加的操作,可在一个周期内并行完成,以上优化思想和代码结构在DSP平台运行,极具优势。另外,进行纵向滤波处理,由于输入图像在内存一般采用按行优先存储,需要采用额外的数据打包处理,其他过程类似。 2.3 宽存储器访问计算边缘 宽长度存储器访问是指充分利用C6x系列DSP一次读取32 位数的特性,并利用一个指令周期能读取多个数据的特点在DSP处理过程中,尽可能多的将所需短字长操作数读入,如一次读入2×32 b,4×16 b,甚至8×8 b等,可成倍减少与外部存储器发生交互,是DSP优化过程中一个重要的优化手段。在实现C6678 DSP平台的Canny算法时,不止是在高斯滤波的处理过程中,计算图像梯度信息,进行非最大抑制等过程中也同样采用宽长度存储器访问,脱离传统的按单位像素交互图像数据的思维和编程方式,结合具体芯片的处理性能和应用程序要求实现和优化Canny算子,例如C6678甚至支持128 b的超长数据,在访问和保存中间图像结果时,具体采用的数据位宽需要结合系统对精度的要求,当用16位来表示梯度信息,即C语言中的short类型,采用64 b宽存储器访问,便推导出梯度计算公式的等价公式如下: 采用宽存储器非对齐数据访问可以从DSP内存中任意起始地址开始读取和存储2 B,4 B,8 B的数据,分别使用(&)_mem2_(const),(&)_mem4_(const),(&)_mem8_(const)函数。如此,便可以将图像处理领域中频繁使用的四邻域模板进行推导,处理具体任务时,将四领域模板升级为连续四点四邻区,连续八点四邻区,其示意图如图3所示。 图3(a)为四邻域模板示意图, (b)和(c)为分别采用4 B和8 B访问时,邻域模板示意图。对(b)和(c)图像进行处理的前提和依据是:连续4点的四邻域在内存存储中也是连续的(不包含边界),连续访问的4点,在物理位置上其相关邻点也连续。如此,可成倍节省外部存储器访问操作时间。访问(a)的四邻域点,需要4次仿存,采用推导出等价模板后,处理连续四点和八点只需4次访问。在Canny边缘计算过程中,需对输入逐点遍历,如计算梯度时遍历整幅图像灰度,非最大抑制时遍历梯度和方向等,以上等价模板思想,当需要处理图像的八邻域或在其他比较规整的膨胀和腐蚀模板同样适应。 3 硬件仿真结果 硬件平台采用TMS320C6678LE评估板,开发软件采用CCS V5.3,量化位数16位,对一副800×600的显微细胞图像进行处理,分割效果良好,见图4。此外,在优化前后,分别对Canny算法步骤进行分析和测试,耗时统计采用TSCL和TSCH寄存器,结果见表1,所统计的结果均是在勾选相同的编译器优化选项后的比对。 4 结 语 在DSP平台中,采用以上思想进行优化后,对同样的图像进行处理,相对于原算法,性能可以提高近3倍,在差分图像计算时,效果极为明显。在DSP系统设计中,频繁地直接外部存储器接口访问,是系统性能提升的瓶颈,优化结果表明,采用数据打包处理和宽存储器访问方式能在一定程度上解决该问题,虽不能实现数量级的优化,但研究的优化方法同样可以在工程中作为辅助的优化策略,并且具有实际优化效果。 图4 分割前后的显微细胞图像 表1 耗时测试仿真结果 cycle 参考文献 [1] 梁光明.体液细胞图像有形成分智能识别关键技术研究[D].长沙:国防科技大学,2008. [2] 韩慧妍,韩燮.形态学和Otsu方法在Canny边缘检测算子中的应用[J].微电子学与计算机,2012,29(2):156?159. [3] 洪运国.基于改进Canny 算子和神经网络的人体行为识别模型[J].计算机工程与应用,2013,49(8):202?205. [4] 金泽安.基于DSP红细胞图像处理技术[D].南京:南京理工大学,2009. [5] 孙兴华,郭丽.数字图像处理:编程框架、理论分析、实例应用和源码实现[M].北京:机械工业出版社,2012. [6] 左飞,万晋森,刘航.数字图像处理原理与实践:基于Visual C++开发[M].北京:电子工业出版社,2011. [7] Texas Instruments. TMS320C66x DSP CPU and instruction set reference guide [M]. USA: TI, 2010. [8] QURESHI Shehrzad. Embedded image processing on the TMS320C6000? DSP: examples in code composer studio and MATLAB [M]. [S.l.]: Springer Verlag, 2005. [9] Texas Instruments. TMS320C6000系列DSP编程工具与指南[M].田黎育,何佩琨,朱梦宇,译.北京:清华大学出版社,2006. [10] Texas Instruments. Multicore fixed and floating?point digital signal processor TMS320C6678 data manual [M]. USA: TI, 2013. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。