本文主要是介绍opencv中求图像像素值中位数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
话不多说,直接上源码:
int GetMidValue(Mat& input)
{int rows = input.rows;int cols = input.cols;float histogram[256] = { 0 };//先计算图像的直方图for (int i = 0; i < rows; ++i){///获取i行首像素的指针const uchar *p = input.ptr<uchar>(i);///遍历i行像素for (int j = 0; j < cols; ++j){//cout << int(*p++) << endl;histogram[int(*p++)]++;}}int HalfNum = rows * cols / 2;int tempSum = 0;for (int i = 0; i < 255; i++){tempSum = tempSum + histogram[i];if (tempSum > HalfNum){return i;}}return 0;
}
输入为Mat类图像,返回为图像像素值中位数,返回为0则计算有误。
这篇关于opencv中求图像像素值中位数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!