函数Median_Mat的返回值即为图像中值:
int compare(const void * a, const void * b)
{
return (*(uchar*)a - *(uchar*)b);
}
float Median_Mat(Mat img)
{
uchar *buf;
buf = new uchar[img.rows*img.cols];
for (int i = 0; i < img.rows; i++)
{
for (int j = 0; j < img.cols; j++)
{
buf[i*img.cols + j] = img.ptr<uchar>(i)[j];
}
}
qsort(buf, img.rows*img.cols, sizeof(buf[0]), compare);
return buf[img.rows*img.cols / 2];
}