The_Answer 发表于 2015-3-6 20:28

求DSP图像去噪的完整程序

本人刚接触用DSP处理图像,求一图像去噪的程序或资料。谢谢。

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,bTemp;
for(i=0;i<288;i++)
{
    for(j=0;j<720;j++)
    {
    /*屏幕上奇数行进行处理*/
    aValue = (*(Uint8 *)(tempSrcYbuffer + (numLines/2+i-1)*numPixels + (j-1)));
    aValue = (*(Uint8 *)(tempSrcYbuffer + (numLines/2+i-1)*numPixels + j));
    aValue = (*(Uint8 *)(tempSrcYbuffer + (numLines/2+i-1)*numPixels + (j+1)));
    aValue = (*(Uint8 *)(tempSrcYbuffer + i*numPixels + (j-1)));
    aValue = (*(Uint8 *)(tempSrcYbuffer + i*numPixels + j));
    aValue = (*(Uint8 *)(tempSrcYbuffer + i*numPixels + (j+1)));
    aValue = (*(Uint8 *)(tempSrcYbuffer + (numLines/2+i)*numPixels + (j-1)));
    aValue = (*(Uint8 *)(tempSrcYbuffer + (numLines/2+i)*numPixels + j));
    aValue = (*(Uint8 *)(tempSrcYbuffer + (numLines/2+i)*numPixels + (j+1)));
   
//用冒泡法对数组进行排序
    for(b=0;b<8;b++)
    {
      for(a=0;a<8-b;a++)
      {
            if(aValue>aValue)
            {
            //互换
                bTemp = aValue;
                aValue = aValue;
                aValue = bTemp;
         }
       }
    }   
    bTemp = aValue;
   
    *(Uint8 *)(tempDisYbuffer + i*numPixels + j) = bTemp;
   
    /*屏幕上偶数行进行处理*/
    aValue = (*(Uint8 *)(tempSrcYbuffer + i*numPixels + (j-1)));
    aValue = (*(Uint8 *)(tempSrcYbuffer + i*numPixels + j));
    aValue = (*(Uint8 *)(tempSrcYbuffer + i*numPixels + (j+1)));
    aValue = (*(Uint8 *)(tempSrcYbuffer + (i+numLines/2)*numPixels + (j-1)));
    aValue = (*(Uint8 *)(tempSrcYbuffer + (i+numLines/2)*numPixels + j));
    aValue = (*(Uint8 *)(tempSrcYbuffer + (i+numLines/2)*numPixels + (j+1)));   
    aValue = (*(Uint8 *)(tempSrcYbuffer + (i+1)*numPixels + (j-1)));
    aValue = (*(Uint8 *)(tempSrcYbuffer + (i+1)*numPixels + j));
    aValue = (*(Uint8 *)(tempSrcYbuffer + (i+1)*numPixels + (j+1)));
    //用冒泡法对数组进行排序
    for(b=0;b<8;b++)
    {
      for(a=0;a<8-b;a++)
      {
            if(aValue>aValue)
            {
               //互换
                bTemp = aValue;
                aValue = aValue;
                aValue = bTemp;
         }
      }
    }   
    bTemp = aValue;
   
       *(Uint8 *)(tempDisYbuffer + (i+numLines/2)*numPixels + j) = bTemp;   
    }
}
}

Laputa_fly 发表于 2015-4-27 09:26

版主好负责呀
页: [1]
查看完整版本: 求DSP图像去噪的完整程序