2

我正在使用以下内容来获取一组 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;
    }
}

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

4

1 回答 1

1

计算直方图并使用直方图中的峰值。您可以修改opencv已经提供的代码来计算模式。此页面还解释了直方图和使用它的不同方法。

于 2015-03-20T04:18:19.940 回答