C + + language : median filter

* # include < Algorithm >
using namespace STD ; IplImage * CDrawDlg :: MiddleProssing ( IplImage * img , IplImage * img1 ) { int i , J , k , t ; int Move [ 8 ] [ 2 ] = {{ 0 , 1 } { 1 , 0 }, { - 1 , 0 }, { 0 , - 1 }, { 1 , 1 }, { - 1 , - 1 }, { 1 , - 1 }, { - 1 , 1 }}; int P [ 9 ]; IplImage * tmp = detectanddraw ( img ); IplImage * tmp1 = detectanddraw ( img1 ); for ( i = 1 ; i < tmp -> height - 1 ; i + + ) { for ( J = 1 ; J < tmp -> width - 1 ; J + + ) { for ( t = 0 ; t < 3 ; t + + ) { int ii = i ; int JJ = J ;                 P [ 8 ] = (( UCHAR * ) ( img -> imageData + img -> widthStep * JJ )) [ ii * 3 + t ]; for ( k = 0 ; k < 8 ; k + + ) { ii = i + Move [ k ] [ 0 ]; JJ = J + Move [ k ] [ 1 ];                     P [ k ] = (( UCHAR * ) ( img -> imageData + img -> widthStep * JJ )) [ ii * 3 + t ]; } Sort (P , P + 9 );                 (( UCHAR * ) ( img1 -> imageData + img1 -> widthStep * J )) [ i * 3 + t ] = P [ 4 ]; } } } return img1 ; }


Learn More :