0

我的问题是:我们如何使用opencv快速计算图像的标准推导?我的解决方案如下:

double std(const cv::Mat &img)
{
    double squareSum=0;
    double sum=0;
    int elementSum;
    elementSum = img.rows*img.cols;
    for(int row = 0; row<img.rows; row++)
    {
        const unsigned char *p = img.ptr(row);
        for(int col=0; col<img.cols; col++)
        {
            sum += *p;
            squareSum += (*p)*(*p);
            p++;
        }
    }

    double mean = sum/elementSum;
    return(squareSum/elementSum- mean*mean);
}

在我的代码中,我假设图像只有一个波段。您是否有进一步改进上述代码的想法或您有其他解决方案?

4

0 回答 0