OpenCV(三十九):积分图像

1.积分图像介绍

积分图像中的每个像素表示了原始图像中对应位置及其左上方矩形区域内像素值的总和。如图,p0表示原始图像蓝色区域内像素值的总和。

倾斜求和(Skewed Sum)是积分图像的一种扩展形式,用于计算图像区域内的像素和,其中区域并不是矩形而是斜边形。通过倾斜求和的积分图像,可以在常量时间内计算任意斜边形区域内的像素和。。如图,p0表示原始图像灰色区域内像素值的总和。

2.计算积分图像函数integral()

void cv::integral ( InputArray src,

OutputArray sum,

OutputArray sqsum,

OutputArray tilted,

int sdepth = -1,

int sqdepth = -1

)

  • src:输入图像,图像数据类型可以是CV_8U、CV_32F或者CV_64。
  • sum:输出标准求和积分图像,图像的数据类型可以是CV_32S、CV_32F或者CV_64。
  • sqsum:输出平方求和积分图像,图像的数据类型可以是CV_32F或者CV_64F。
  • tilted:输出倾斜45°的倾斜求和积分图像,其数据类型与sum相同。
  • sdepth: 输出标准求和积分图像和倾斜求和积分图像的数据类型标志,可以选择的参数为CV _32S、CV_32F或者 CV_64F,参数默认值为-1,表示满足数据存储的自适应类型。
  • sqdepth: 输出平方求和积分图像的数据类型标志,可以选择的参数为CV_32F或者 CV_64F,参数默认值为-1,表示满足数据存储的自适应类型。

3.示例代码

复制代码
void  Integral_image(){
    //创建一个16×16全为1的矩阵,因为256=16×16
    Mat img=Mat::ones(16,16,CV_32FC1);
    //在图像中加入随机噪声
    RNG rng(10086);
    for(int y=0;y<img.rows;y++){
        for(int x=0;x<img.cols;x++){
            float d=rng.uniform(-0.5,0.5);
            img.at<float>(y,x)=img.at<float>(y,x)+d;
        }
    }
    //计算标准求和积分
    Mat sum;
    integral(img,sum);
    //为了便于显示,转成CV_8U格式
    Mat sum8U=Mat_<uchar>(sum);
    imwrite("/sdcard/DCIM/sum8U.png",sum8U);

    //计算平方求和积分
    Mat sqsum;
    integral(img,sum,sqsum);
    //为了便于显示,转成CV_8U格式
    Mat sqsum8U=Mat_<uchar>(sqsum);
    imwrite("/sdcard/DCIM/sqsum8U.png",sqsum8U);
    //计算倾斜求和积分
    Mat tilted;
    integral(img,sum,sqsum,tilted);
    //为了便于显示,转成CV_8U格式
    Mat tilted8U=Mat_<uchar>(tilted);
    imwrite("/sdcard/DCIM/tilted8U.png",tilted8U);
}

标准求和积分结果:

平方求和积分结果:

倾斜求和积分结果:

相关推荐
后端小肥肠1 小时前
公众号躺更神器!OpenClaw+Claude Skill 实现自动读对标 + 写文 + 配图 + 存入草稿箱
人工智能·aigc·agent
爱可生开源社区1 小时前
SCALE | 重构 AI 时代数据库能力的全新评估标准
人工智能
blasit1 小时前
笔记:Qt C++建立子线程做一个socket TCP常连接通信
c++·qt·tcp/ip
Jahzo2 小时前
openclaw本地化部署体验与踩坑记录--飞书机器人配置
人工智能·开源
Narrastory2 小时前
明日香 - Pytorch 快速入门保姆级教程(一)
人工智能·pytorch·深度学习
数据智能老司机2 小时前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机2 小时前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
Narrastory2 小时前
明日香 - Pytorch 快速入门保姆级教程(二)
人工智能·pytorch·深度学习
AI攻城狮2 小时前
OpenClaw Session 管理完全指南:Context 压缩、重置与持久化
人工智能·云原生·aigc
中杯可乐多加冰3 小时前
OpenClaw到底能做什么?有什么用?先装这几个实用的Skills
人工智能