请教大神在opencv中怎么计算图像局部方差

请教大神在opencv中怎么计算图像局部方差, 请教大神在opencv中怎么计算图像局部方差, 请教大神在opencv中怎么计算图像局部方差,谢谢

你也在学opencv吗,可以交流下

局部,是正常的矩形还是不规则区域
矩形: 坐标的x y即像素点的x y根据长宽遍历
不规则: 我暂时没有计算过

  1. 你图像是灰阶还是RGB
  2. 如果灰阶 按照灰阶度使用公式即可,如果是RGB建议先用cvmerxx 函数忘记了 把RGB通道合成之后 在按照灰阶进行计算
 cv::Mat src = cv::imread("D:\\Users\\A-spider\\Documents\\Visual Studio 2012\\Projects\\c\\c\\graf1_suo0.8.bmp"); 
        cv::Mat kk;
        cv::cvtColor(src, kk, CV_RGB2YUV);//rgb图像变成yuv图像
         imwrite("yuv.bmp",kk);

        //载入图像的数据
        IplImage *image=cvLoadImage("yuv.bmp");
        if(p<15||q<15)
              continue;
        for(m=p-2;m<=p+2;m++)
        {
            for(n=q-2;n<=q+2;n++)
            {   
                s=cvGet2D(image,n,m);
                aver+=s.val[0];         
            }
        }
        aver=aver/25;
        cvReleaseImage(&image);
         IplImage *image1=cvLoadImage("yuv.bmp");
        for(m=p-2;m<=p+2;m++)
        {
            for(n=q-2;n<=q+2;n++)
            {   
                s=cvGet2D(image1,m,n);
                var+=(s.val[0]-aver)*(s.val[0]-aver);           
            }
        }
        var=var/25;

        var=sqrt(var);
        请大神帮忙看看我这个代码哪里出错了,为什么会显示内存泄露呢,p,q为特征点坐标,程序运行出来只是显示一部分的区域方差,后面的就出现内存泄露了。