zoukankan      html  css  js  c++  java
  • 中值滤波和均值滤波C++代码

    均值滤波和中值滤波代码  

    2008-11-24 16:07:36|  分类: 编程|举报|字号 订阅

     
     

    //------------------均值滤波器

    bool FilterAV(unsigned char *image,int height,int width)

    {

     int i,j;

     unsigned char *p=(unsigned char*)malloc(height*width);

     for(i=1;i<height-1;i++)

     {

      for(j=1;j<width-1;j++)

      {

       p[i*width+j]=(unsigned char)(((int)image[(i-1)*width+j-1]

          +(int)image[(i-1)*width+j]

          +(int)image[(i-1)*width+j+1]

          +(int)image[i*width+j-1]

          +(int)image[i*width+j]

          +(int)image[i*width+j+1]

          +(int)image[(i+1)*width+j-1]

          +(int)image[(i+1)*width+j]

          +(int)image[(i+1)*width+j+1])/9);

      }

     }

     for(i=1;i<height-1;i++)

     {

      for(j=1;j<width-1;j++)

      {

       image[i*width+j]=p[i*width+j];

      }

     }

     free(p);

     return true;

    }

    //----------------------------中值滤波器

    bool FilterMid(unsigned char *image,int height,int width)

    {

     int i,j,k,l;

     int pos;

     unsigned char temp;

     unsigned char psr[9];

     unsigned char *p=(unsigned char*)malloc(height*width);

      for(i=1;i<height-1;i++)

         {

      for(j=1;j<width-1;j++)

      {     //---3*3窗口矩阵

                  psr[0]=image[(i-1)*width+j-1];

                  psr[1]=image[(i-1)*width+j];

                  psr[2]=image[(i-1)*width+j+1];

                  psr[3]=image[i*width+j-1];

                  psr[4]=image[i*width+j];

                  psr[5]=image[i*width+j+1];

                  psr[6]=image[(i+1)*width+j-1];

                  psr[7]=image[(i+1)*width+j];

                  psr[8]=image[(i+1)*width+j+1];

                  //--------选择排序

                  for(k=0;k<9;k++)

                  {

                        pos=k;

                        for(l=k;l<9;l++)

                        {

                            if(psr[l]<psr[pos])

                                    pos=l;

                        }

                        temp=psr[k];

                        psr[k]=psr[pos];

                        psr[pos]=temp;

                  } 

                  //------取中值

                  p[i*width+j]=psr[4];

      }

     }

      for(i=1;i<height-1;i++)

         {

      for(j=1;j<width-1;j++)

      {

       image[i*width+j]=p[i*width+j];

      }

      }

      free(p);

      return true;

    }

  • 相关阅读:
    H5中https://j.map.baidu.com/e7/M6hJ的地址是如何生成的
    转义符
    vue-json-excel导出数字字符串转为科学计数法问题和文件格式问题
    高级JavaScript(4)RegExp,正则表达式
    js7种数据类型
    gulp自动化打包及静态文件自动添加版本号
    解决——CSS :before、:after ,当content使用中文时有时候会出现乱码
    【移动端】移动端点击可点击元素时,出现蓝色默认背景色
    我去!爬虫遇到字体反爬,哭了
    实战|教你用Python玩转Mysql
  • 原文地址:https://www.cnblogs.com/ITcode/p/3968568.html
Copyright © 2011-2022 走看看