OpenCV:计算一组cv :: Mat的统计模式

时间:2013-01-23 08:05:53

标签: opencv mode

我使用以下内容来获取一组cv :: Mat的统计模式:

vector<Mat> imgs(30);
...
...

Mat mode = Mat::zeros(imgRows, imgCols, CV_8U);
for(int i=0;i<mode.rows;i++)
{
    for(int j=0;j<mode.cols;j++)
    {
        vector<int>count(256,0);
        int maxIndex=0, maxCount=0;
        int index;
        for(int n=0;n<imgs.size();n++)
        {
            index = imgs[n].at<uchar>(i,j);
            count[index]++;
            if(count[index] > maxCount)
            {
                maxCount = count[index];
                maxIndex = index;
            }
        }
        mode.at<uchar>(i,j) = maxIndex;
    }
}

还有其他方法可以更有效地计算模式吗?

1 个答案:

答案 0 :(得分:1)

计算直方图并使用直方图中的峰值。您可以修改code already provided by opencv以计算模式。此页面还介绍了直方图和使用它的不同方法。