OpenCV使用ingegral计算积分图

一、概述

  案例:使用OpenCV中的integral计算图像积分图及平方像素积分图

  API描述:

integral( InputArray src, OutputArray sum,
                                        OutputArray sqsum, int sdepth = -1, int sqdepth = -1 );
src:输入图像,可以是彩色图像也可以是灰度图像,8位整数或32、64位浮点数.其宽高为width、height
sum:输出参数,积分图像,其宽高必须是(width+1)*(height+1)的32或64位浮点数
sqsum:输出参数,平方像素值的积分图像,其宽高必须是(width+1)*(height+1)的64位浮点数
sdepth:期望的积分深度和倾斜的积分图像,CV_32S,CV_32F或CV_64F
sqdepth:要求的深度的积分图像的平方像素值,CV_32F或CV_64F

  计算积分图的步骤:

    1.输入图像(彩色或灰度图)

    2.计算积分图像

    3.输出积分图像

  

二、代码实例

 Mat src = imread(filePath);
    if(src.empty()){
        qDebug()<<"图像为空";
        return;
    }
    imshow("src",src);
    //积分图像:宽高必须为(width+1)*(height+1),且必须为32位或64位浮点数
    Mat sum;
    //平方像素值的积分图像,他的宽高必须是(width+1)*(height+1)且为64位浮点数
    Mat sqsum;
    integral(src,sum,sqsum);//计算积分图像及平方像素值积分图像
    //
    Mat result;
    //将平方图像归一化0~255之间
    normalize(sum,result,0,255,NORM_MINMAX,CV_8UC1,Mat());
    imshow("result",result);

 

三、图片演示

 

posted on 2022-03-23 15:06  飘杨......  阅读(340)  评论(0编辑  收藏  举报