<span style= "Font-family:microsoft yahei;font-size:14px;" > #include <opencv2/opencv.hpp> #include <vector> #define UINT unsigned int using namespace CV; const UINT ROWNUMBER = 480;const uint Colnumber = 640;void Automedianfilter (Mat Src, mat DST, uint window) {UINT d = window /2;for (uint px = D; px < (rownumber-d); ++px) {for (uint py = D; py < (colnumber-d); ++py) {std::vector<uchar> V;for (UINT SX = (px-d); sx < (PX+D); ++sx) {for (UINT SY = (py-d); sy < (py+d); ++sy) {V.push_back (src.at<uchar> ( Sx,sy));}} for (UINT i = 0; I < (V.size ()-1), ++i) {for (UINT J = (i+1); J < V.size (); ++j) {if (v.at (i) > v.at (j)) {Uchar temp; temp = v.at (i); v.at (i) = v.at (j); v.at (j) = temp; }}} if ((src.at<uchar> (px,py) = = v.at ((v.size ()-1)) | | (src.at<uchar> (px,py) = = v.at (0))) {dst.at<uchar> (px,py) = v.at ((V.size ()/2)); }}}}int Main () {Mat image=imread ("2.jpg", CV_8UC1) Namedwindow ("Median filter" "original"); Namedwindow ("median filter" Auto ""); Namedwindow(Median filter "OpenCV"); Mat out1 = Image.clone (); Automedianfilter (Image, OUT1, 15); Mat Out2;medianblur (image, Out2, max), Imshow ("Median filter", "image"); Imshow ("median filter" Auto "", OUT1); Imshow ("median filter" OpenCV "", out2); Waitkey (0); return (0);} </span>
Original:
Adaptive median filtering:
Median filter in OpenCV:
Adaptive median filtering (based on C + + and OPENCV) Kinect depth Map