implement 33 box filter by using C programming languageSolut

implement 3*3 box filter by using C# programming language??

Solution

I have created a function box_filter for 3*3 filter.Use this fuction in any c code for 3*3 image filter.


public int[] box_filter(
    int[] pix,int width, int height, float[] krnl) {
    int[] temp = new int[width*height] ;
    float denom = 0.0f ;
    float red, green, blue ;
    int ired, igreen, iblue, index_off, rgb ;
    int[] indi = {
        -(width + 1), -width,     -(width - 1),
        -1,                0,           +1,
        width - 1,      width,      width + 1
    } ;
    for (int i=0;i<krnl.length;i++)
        denom += krnl[i] ;
    if (denom==0.0f) denom = 1.0f ;
    for (int i=1;i<height-1;i++) {
        for (int j=1;j<width-1;j++) {
            red = green = blue = 0.0f ;
            index_off = (i*width)+j ;
            for (int k=0;k<krnl.length;k++) {
                rgb = pix[index_off+indi[k]] ;
                red += ((rgb & 0xff0000)>>16)*krnl[k] ;
                green += ((rgb & 0xff00)>>8)*krnl[k] ;
                blue += (rgb & 0xff)*krnl[k] ;
            }           
            ired = (int)(red / denom) ;
            igreen = (int)(green / denom) ;
            iblue = (int)(blue / denom) ;
            if (ired>0xff) ired = 0xff ;
                else if (ired<0) ired = 0 ;
            if (igreen>0xff) igreen = 0xff ;
                else if (igreen<0) igreen = 0 ;
            if (iblue>0xff) iblue = 0xff ;
                else if (iblue<0) iblue = 0 ;           
            temp[index_off] = 0xff000000 | ((ired<<16) & 0xff0000) |
                    ((igreen<<8) & 0xff00) | (iblue & 0xff) ;
        }
    }
    return temp ;
}

implement 3*3 box filter by using C# programming language??SolutionI have created a function box_filter for 3*3 filter.Use this fuction in any c code for 3*3 im

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site