<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) );
}
}
自适应中值滤波(基于C++和OpenCV)Kinect深度图
最新推荐文章于 2025-05-26 08:30:00 发布