打印
[DSP编程]

求DSP图像去噪的完整程序

[复制链接]
1066|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
The_Answer|  楼主 | 2015-3-6 20:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhangmangui| | 2015-3-6 22:36 | 只看该作者
你好    你要说清楚你使用的是哪款DSP
然后想要用什么算法处理   

使用特权

评论回复
板凳
The_Answer|  楼主 | 2015-3-7 09:05 | 只看该作者
zhangmangui 发表于 2015-3-6 22:36
你好    你要说清楚你使用的是哪款DSP
然后想要用什么算法处理

版主你好,我使用的DSP型号是TMS320DM642,应用的处理算法是中值滤波算法。感谢您的回复。

使用特权

评论回复
地板
zhangmangui| | 2015-3-7 19:10 | 只看该作者
The_Answer 发表于 2015-3-7 09:05
版主你好,我使用的DSP型号是TMS320DM642,应用的处理算法是中值滤波算法。感谢您的回复。 ...

/*****中值滤波处理*********/
void MedianFilter()
{
int i,j,a,b;
Uint8 aValue[9],bTemp;
for(i=0;i<288;i++)
{
    for(j=0;j<720;j++)
    {
    /*屏幕上奇数行进行处理*/
    aValue[0] = (*(Uint8 *)(tempSrcYbuffer + (numLines/2+i-1)*numPixels + (j-1)));
    aValue[1] = (*(Uint8 *)(tempSrcYbuffer + (numLines/2+i-1)*numPixels + j));
    aValue[2] = (*(Uint8 *)(tempSrcYbuffer + (numLines/2+i-1)*numPixels + (j+1)));
    aValue[3] = (*(Uint8 *)(tempSrcYbuffer + i*numPixels + (j-1)));
    aValue[4] = (*(Uint8 *)(tempSrcYbuffer + i*numPixels + j));
    aValue[5] = (*(Uint8 *)(tempSrcYbuffer + i*numPixels + (j+1)));
    aValue[6] = (*(Uint8 *)(tempSrcYbuffer + (numLines/2+i)*numPixels + (j-1)));
    aValue[7] = (*(Uint8 *)(tempSrcYbuffer + (numLines/2+i)*numPixels + j));
    aValue[8] = (*(Uint8 *)(tempSrcYbuffer + (numLines/2+i)*numPixels + (j+1)));
   
//用冒泡法对数组进行排序
    for(b=0;b<8;b++)
    {
        for(a=0;a<8-b;a++)
        {
            if(aValue[a]>aValue[a+1])
            {
            //互换
                bTemp = aValue[a];
                aValue[a] = aValue[a+1];
                aValue[a+1] = bTemp;
           }
       }
    }   
    bTemp = aValue[4];
   
    *(Uint8 *)(tempDisYbuffer + i*numPixels + j) = bTemp;
   
    /*屏幕上偶数行进行处理*/
    aValue[0] = (*(Uint8 *)(tempSrcYbuffer + i*numPixels + (j-1)));
    aValue[1] = (*(Uint8 *)(tempSrcYbuffer + i*numPixels + j));
    aValue[2] = (*(Uint8 *)(tempSrcYbuffer + i*numPixels + (j+1)));
    aValue[3] = (*(Uint8 *)(tempSrcYbuffer + (i+numLines/2)*numPixels + (j-1)));
    aValue[4] = (*(Uint8 *)(tempSrcYbuffer + (i+numLines/2)*numPixels + j));
    aValue[5] = (*(Uint8 *)(tempSrcYbuffer + (i+numLines/2)*numPixels + (j+1)));     
    aValue[6] = (*(Uint8 *)(tempSrcYbuffer + (i+1)*numPixels + (j-1)));
    aValue[7] = (*(Uint8 *)(tempSrcYbuffer + (i+1)*numPixels + j));
    aValue[8] = (*(Uint8 *)(tempSrcYbuffer + (i+1)*numPixels + (j+1)));
    //用冒泡法对数组进行排序
    for(b=0;b<8;b++)
    {
        for(a=0;a<8-b;a++)
        {
            if(aValue[a]>aValue[a+1])
            {
                 //互换
                bTemp = aValue[a];
                aValue[a] = aValue[a+1];
                aValue[a+1] = bTemp;
           }
        }
    }   
    bTemp = aValue[4];
   
       *(Uint8 *)(tempDisYbuffer + (i+numLines/2)*numPixels + j) = bTemp;     
    }
}
}

使用特权

评论回复
5
Laputa_fly| | 2015-4-27 09:26 | 只看该作者
版主好负责呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝