⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 img_median_3x3_c.c

📁 一个关于DM642 fft变换的例子
💻 C
字号:
                                                              
/* ----------------------------------------------------------------------- */
/*            Copyright (c) 2002 Texas Instruments, Incorporated.           */
/*                           All Rights Reserved.                           */
/* ======================================================================= */

void IMG_median_3x3_c(unsigned char * in_data, int cols, unsigned char * out_data)
{
    unsigned char   * line0, * line1, *line2;
    int    l00_0, l01_0, l02_0, l10_0, l11_0, l12_0, l20_0, l21_0, l22_0;
    int    l00_1, l10_1, l10_2, l10_3, l20_1, l20_2;
    int    t0_1, t1_1, t1_2;
    int    i, minmax_0, maxmin_0, medmed_0;
    int    minmax_1, medmed_1, medmed_2, medmed_3;

    line0 = in_data;
    line1 = line0 + cols;
    line2 = line1 + cols;

    /*    l00   l01  l02        max's           */
    /*    l10   l11  l12        med's           */
    /*    l20   l21  l22        min's           */

    l01_0 = l11_0 = l21_0 = 127;
    l02_0 = l12_0 = l22_0 = 127;

    minmax_0 = l02_0;
    maxmin_0 = l22_0;

    for (i = 0; i < cols; i++)
    {
         l00_0 = *line0++;
         l10_0 = *line1++;
         l20_0 = *line2++;

         // sort l00_0, l10_0, l20_0

         l20_1 = l20_0; l10_1 = l10_0;
         if (l20_0 > l10_0) { l10_1 = l20_0;  l20_1 = l10_0; } // swap

         l00_1 = l00_0; l10_2 = l10_1;
         if (l10_1 > l00_0) { l00_1 = l10_1;  l10_2 = l00_0; } // swap

         l20_2 = l20_1;  l10_3 = l10_2;
         if (l20_1 > l10_2) { l10_3 = l20_1;  l20_2 = l10_2; } // swap

         if (l01_0 < minmax_0) minmax_0 = l01_0;    /* Compute min of max */
         if (l00_1 < minmax_0) minmax_0 = l00_1;

         if (l21_0 > maxmin_0) maxmin_0 = l21_0;    /* Comput max of min  */
         if (l20_2 > maxmin_0) maxmin_0 = l20_2;

         // sort l10 l11 l12

         t0_1 = l10_3;                /* Compute median of median */
         t1_1 = l11_0;
         if (l10_3 > l11_0)
         {
           t0_1 = l11_0;
           t1_1 = l10_3;
         }
         t1_2 = t1_1;
         if (t1_1 > l12_0)
         {
           t1_2 = l12_0;
         }

         medmed_0  = t1_2;
         if (t0_1 > t1_2) { medmed_0 = t0_1; } // swap

         // minmax, medmed, maxmin

         medmed_1 = medmed_0; minmax_1 = minmax_0;
         if (minmax_0 > medmed_0) { medmed_1 = minmax_0; minmax_1 = medmed_0; }

         medmed_2 = medmed_1;
         if (medmed_1 > maxmin_0) { medmed_2 = maxmin_0; }

         medmed_3 = medmed_2;
         if (minmax_1 > medmed_2) { medmed_3 = minmax_1; }

         /* Move data along by one column              */

         minmax_0 = l01_0;
         l12_0 = l11_0;
         maxmin_0 = l21_0;
         l01_0 = l00_1;
         l11_0 = l10_3;
         l21_0 = l20_2;

         *out_data++ = medmed_3;
     }
}
/*============================================================================*/
/*            Copyright (c) 2002 Texas Instruments, Incorporated.           */
/*                           All Rights Reserved.                           */
/*============================================================================*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -