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);
}

标准求和积分结果:

平方求和积分结果:

倾斜求和积分结果:

相关推荐
用户6869161349044 分钟前
哈希表实现指南:从原理到C++实践
数据结构·c++
智能砖头1 小时前
本地文档AI助手:基于LangChain和Qwen2.5的智能问答系统
人工智能·python
大老板a2 小时前
c++五分钟搞定异步处理
c++
聚客AI3 小时前
🛫AI大模型训练到发布一条龙:Hugging Face终极工作流
人工智能·llm·掘金·日新计划
新智元5 小时前
刚刚,谷歌 AI 路线图曝光:竟要抛弃注意力机制?Transformer 有致命缺陷!
人工智能·openai
Maynor9965 小时前
我是如何使用Claude Code
人工智能
知舟不叙5 小时前
基于OpenCV的图像增强技术:直方图均衡化与自适应直方图均衡化
人工智能·opencv·计算机视觉·图像增强
speop5 小时前
【datawhale组队学习】共读AI新圣经
人工智能·学习
Blossom.1185 小时前
基于深度学习的智能图像增强技术:原理、实现与应用
人工智能·python·深度学习·神经网络·机器学习·tensorflow·sklearn
羑悻的小杀马特5 小时前
从信息孤岛到智能星云:学习助手编织高校学习生活的全维度互联网络
c++·学习·生活·api