• dsp如何做图像处理 > DSP图像处理算法的
  • DSP图像处理算法的

    免费下载 下载该文档 文档格式:PDF   更新时间:2010-04-02   下载次数:0   点击次数:1
    文档基本属性
    文档语言:Simplified Chinese
    文档格式:pdf
    文档作者:gaolp
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    DSP图像处理算法的 实现
    答辩人:黄德天 学号:04140021 系别:电子工程系 指导教师:杨涛教授
    主要研究工作
    基于标准C,设计通用的基本图像处理算 法,并在此基础上,考虑最通用的DSP结构 的优化要求来细化C语言的程序结构,优化 程序的实现方法.本设计完成了图像处理 中,卷积,相关和中值滤波运算的算法实 现;基于TI公司的TMS320C6000硬件平 台的结构特点,本设计采用的算法优化方法 包括:使用编译器选项,内联函数和字访问 短型数据,软件流水和循环展开等.
    DSP图像处理的原理介绍
    1.离散卷积: a.公式:
    y (i ) = u (t ) h(t ) = ∑ u ( j )h(i j )
    j
    b.算法实现:使用一个模板mask(大小可以是 3×3,5×5或7×7等),依次覆盖在要处理图像的 各个像素上,模板中心与该像素重合;模板上的各 个元素均有其自身的权值,将模板各元素权值与覆 盖在其下的像素值分别相乘后求和,然后进行相应 的处理,最后将此所得结果赋给当前处理的像素.
    DSP图像处理的原理介绍
    2.相关函数: a.公式:
    R fh (t ) = f (t ) h(t ) = ∑ f (τ )h(t τ )
    τ
    b.算法实现图(举例: 3×3相关运算):
    input(x,y) mask(i,j) output(x,y)
    ×
    2 2
    =
    c.算法实现:output (x, y ) = ∑ ∑ input (x + i, y + j )× mask (i, j ) i =0 j =0
    DSP图像处理的原理介绍
    3.中值滤波 中值滤波是一种非线性滤波,对像素领 域内灰度的中值代替该像素的值,即:
    g ( x, y ) = Median[x1 , x2 ,…, xn ]
    其中:x1 , x2 ,…, xn 为点及其领域.
    程序优化的基本流程
    第l阶段:直接根据需要用高级C语言实现DSP功 能,测试代码的正确性.然后,移植到C6000平 台,利用C6000开发环境Profile测试程序的运行 时间.若不满足要求,则进入下一阶段. 第2阶段:利用C6000提供的优化方式和其他各种 优化技巧,如使用:编译器选项,内联函数,字 访问短型数据,软件流水,循环展开等,优化C语 言代码.如果还不能满足要求,则进入第3阶段. 第3阶段:将C语言代码中耗时最长的部分抽取出 来,用线性汇编语言重写,用汇编优化器进行优 化.使用profile确定这段代码是否需要进一步优 化.
    举例:3×3相关运算的算法实现
    3×3相关运算的基本算法:
    output ( x, y ) = ∑ ∑ input ( x + i, y + j ) × mask (i, j )
    i =0 j =0 2 2
    mask的设置如下:
    0 0 0 255 255 0 0 255 0
    该mask的作用是实现图像边缘的检测.
    输入图像:一幅8位无符号图像(8行8列), 黑色部分的像素值为0,白色部分的像素值 为255;对它进行相关运算,要求输出图像 为32位的图像.
    输入图像
    标准C代码的部分程序:
    //processing the image
    for(irows = 1;irows < aSz.height +1;irows++) { for(icols = 1;icols <= aSz.width + 1;icols++) { sum = 0; for (j = 0; j < 3; j++) { for (i = 0; i pData[(irows+j1)*temp_aSz.width+icols-1+i]*mask[j*3+i]; } } outptr->pData[(irows -1) * aSz.width + (icols -1)] = sum; } }
    利用循环展开和软件流水的程序优化方法实现:
    //processing the image
    for(irows = 1;irows < aSz.height +1;irows++){ for(icols = 1;icols pData[(irows -1) * temp_aSz.width + icols - 1] *mask[0]; sum += temp_ptr->pData[(irows -1) * temp_aSz.width + icols] * mask[1]; sum += temp_ptr->pData[(irows -1) * temp_aSz.width + icols + 1] * mask[2]; sum += temp_ptr->pData[(irows) * temp_aSz.width + icols - 1]* mask[3]; sum += temp_ptr->pData[(irows) * temp_aSz.width + icols] * mask[4]; sum += temp_ptr->pData[(irows) * temp_aSz.width + icols +1] * mask[5]; sum += temp_ptr->pData[(irows +1) * temp_aSz.width + icols - 1]* mask[6]; sum += temp_ptr->pData[(irows +1) * temp_aSz.width + icols] * mask[7]; sum += temp_ptr->pData[(irows +1) * temp_aSz.width + icols + 1]* mask[8]; } outptr->pData[(irows -1) * aSz.width + (icols -1)] = sum; }

    下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 PDF格式下载
  • 您可能感兴趣的
  • 图像采集处理dsp  图像处理dsp价格  dsp作图像处理  图像跟踪dsp代码  armdsp双核架构处理  dsp数字高速处理技术  如何学习dsp  dspce如何配置awe  dsp如何仿真