当前位置: 首页 > news >正文

图像处理_积分图

目录

1. 积分图算法介绍

2. 基本原理

2.1 构建积分图

2.2 使用积分图

3. 举个例子


1. 积分图算法介绍


        积分图算法是图像处理中的经典算法之一,由Crow在1984年首次提出,它是为了在多尺度透视投影中提高渲染速度。

        积分图算法是一种快速计算图像区域和以及图像区域平方和的算法。直白的说,就是很快计算一幅图像任意区域,也就是卷积区域下的像素值的和跟平方和。它的核心思想就是对每一个图像建立起自己的积分图查找表,在图像处理的阶段就可以根据预先建立积分图查找表直接查找,从而实现对均值卷积的线性时间计算。做到了卷积执行的时间与半径窗口大小的无关联。

        利用积分图可以极大地加快计算原始图像中任一矩形区域的像素和,因为只需经过一次计算。这种算法被应用到基于NCC的快速匹配、对象检测和SURF变换中、基于统计学的快速滤波器等方面。第一个应用积分图像技术的应用是在Viola-Jones的对象检测框架中出现。

2. 基本原理

在积分图中,我们需要做两个操作:
1)构建积分图
2)使用积分图

2.1 构建积分图

这里写图片描述

        如上图所示,S(x,y)对应于(x,y)跟左上角原点(0,0)所包围的区域的图像灰度总和。从左上角开始,我们可以根据如下公式推算整个图像的积分图。原始图像(x,y)位置对应的积分值为:

        积分图是由 “每个像素位置(x,y)对应的与原点(0,0)组成的矩形区域内的图像灰度和(称为积分值)” , 组成一个一个新的"图像"。

2.2 使用积分图

这里写图片描述

如上图所示,为了求该矩形区域的灰度之和。我们可以用以下公式表示:

这里的总和并不包含点A,B,C的像素值。如上图所示的小像素点,A,B,C所在的像素点不在矩形区域以内。 

3. 举个例子

原始(灰度)图像 与 积分图像

其中:图像位置(1,1)对应的积分值  I(1,1) = 528 的计算方法为:

        S(1,1) = I(1,1) + S(0,1) + S(1,0) - S(0,0) = 132(原图中(1,1)位置灰度值) + 264(积分图中(0,1)位置积分值) + 264(积分图中(1,0)位置积分值) - 132(积分图中(0,0)位置积分值) = 528

则求下面区域的图像像素灰度值Sum(A) = 等于多少?如何求?

则  Sum(A) = S(6,5) +S(3,2) -S(3,5) - S(6,2) = 3923 + 792 – 1584 – 1960 = 1171,

可以在原始图像验算下: 133 + 125 + 130 + 118 + 124 + 125 + 127 + 126 + 163 = 1171, 正确

注意:计算积分图第一行,第一列时,对于上方和右方越界的像素点,灰度设为0 ,图示如下:

对应python函数:

python中对应的函数为cv2.integral(返回sum)。根据输出需要,还有两个可选函数cv2.integral2(返回sum与平方和)和cv2.integral3(返回sum、平方和以及旋转45度)。

参考:

【OpenCV】28 图像积分图算法_opencv 图像平方和-CSDN博客

【图像处理】积分图像及其应用_对图像矩阵做积分图怎么做,给出例子-CSDN博客

图像检测入门(五)积分图 - 知乎

相关文章:

图像处理_积分图

目录 1. 积分图算法介绍 2. 基本原理 2.1 构建积分图 2.2 使用积分图 3. 举个例子 1. 积分图算法介绍 积分图算法是图像处理中的经典算法之一,由Crow在1984年首次提出,它是为了在多尺度透视投影中提高渲染速度。 积分图算法是一种快速计算图像区域和…...

B/S架构SaaS模式 医院云HIS系统源码,自主研发,支持电子病历4级

B/S架构SaaS模式 医院云HIS系统源码,自主研发,支持电子病历4级 系统概述: 一款满足基层医院各类业务需要的云HIS系统。该系统能帮助基层医院完成日常各类业务,提供病患挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查…...

(C)1005 继续(3n+1)猜想

1005 继续(3n1)猜想: 问题描述 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n3 进行验证的时候&a…...

编译好的C++应用程序拷贝到其它电脑,提示dll未找到依赖项的解决方法。

编译好的C应用程序拷贝到其它电脑上,运行时出现提示dll未找到依赖项。 由于dll依赖于其它dll,在开发用电脑上的环境不能完全与其它电脑相同。 解决办法是找到调用到的dll依赖的所有dll,拷贝到运行目录下。 在开发电脑上: 1、开…...

wps 开发插件

官方文档参考wps官方文档参考 1.环境安装 安装wps https://www.wps.cn/ 安装Node.js https://nodejs.org/en 安装代码编辑器 Visual Studio Code https://code.visualstudio.com/ 环境检查-进入cmd查看 node -v2.demo 2.1 demo下载 打开vscode,新建终端 安装…...

C语言----数据在内存中的存储

文章目录 前言1.整数在内存中的存储2.大小端字节序和字节序判断2.1 什么是大小端?2.2 练习 3.浮点数在内存中的存储3.1.引子3.2.浮点数的存储3.2.2 浮点数取的过程 前言 下面给大家介绍一下数据在内存中的存储,这个是一个了解c语言内部的知识点&#xf…...

【Linux学习】Linux 的虚拟化和容器化技术

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…...

Delphi 是一种内存安全的语言吗?

上个月,美国政府发布了 "回到基石 "报告: 通往安全和可衡量软件之路 "的报告。该报告是美国网络安全战略的一部分,重点关注多个领域,包括内存安全漏洞和质量指标。 许多在线杂志都对这份报告进行了评论&#xff0…...

golang语言系列:Scrum、Kanban等敏捷管理策略

云原生学习路线导航页(持续更新中) 本文是 golang语言系列 文章,主要对编程通用技能 Scrum、Kanban等敏捷管理策略 进行学习 1.什么是敏捷开发 敏捷是一个描述软件开发方法的术语,它强调增量交付、团队协作、持续规划和持续学习。…...

QT背景介绍

🐌博主主页:🐌​倔强的大蜗牛🐌​ 📚专栏分类:QT❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、QT背景 1.1什么是QT 1.2QT的发展历史 1.3什么是框架、库 1.4QT支持的平台 1.5QT的优点 1.6QT的…...

动态规划详解(Dynamic Programming)

目录 引入什么是动态规划?动态规划的特点解题办法解题套路框架举例说明斐波那契数列题目描述解题思路方式一:暴力求解思考 方式二:带备忘录的递归解法方式三:动态规划 推荐练手题目 引入 动态规划问题(Dynamic Progra…...

前端大额计算,真正解决js精度丢失问题

1.解决前端大额计算导致精度丢失问题 2.从底层上解决这个问题,计算时不使用js 运行时计算。 使用rust语言来解决这个问题,因为是底层语言,不涉及到精度问题。 3.实现步骤 步骤 1: 安装工具 确保你已经安装了Rust工具链和wasm-pack&#x…...

Android笔记--MediaCodec(一)

这一节主要来了解一下MediaCodec,Android MediaCodec 是 Android 平台提供的一个用于处理音频和视频数据的 API。它允许开发者对音频和视频数据进行编码和解码,支持多种格式和编解码器。MediaCodec API 通常用于实现实时音视频处理,如视频录制…...

Linux简单介绍

Linux简单介绍 编译器VMware虚拟机Ubuntu——LinuxOS为什么使用LinuxOS? 目录结构Windows目录结构Linux操作系统home是不是家目录? Linux常用命令终端命令行提示符与权限切换命令tab 作用:自动补全上下箭头pwd命令ls命令mkdir命令touch命令rm…...

Servlet 的基本理解

Servlet 是JavaEE规范的一种,主要是为了扩展Java作为Web服务的功能,统一接口。由其他内部厂商如tomcat,jetty内部实现web的功能。如一个http请求到来:容器将请求封装为servlet中的HttpServletRequest对象,调用init()&a…...

JavaScript之applye、bind和call方法详解

Question Q1 apply()、bind()和call()方法的区别在哪? Q2 apply()和call()的应用场景 Q3 apply()、bind()和call()方法手写实现逻辑 来源 继承自Function.prototype,属于实例方法 console.log(Function.prototype.hasOwnProperty(call)) //trueconsole.l…...

Docker,anaconda环境的部署与迁移

功能上线将提上日程,但是如何将我windows环境下的程序放到linux服务器的测试环境跑通呢?这是我这整个清明假期将要解决的一件事,最蠢的办法就是看自己的环境下有哪些依赖,如何到服务器上一个一个下,但是首先这个方法很…...

【大数据运维】Hbase shell 常见操作

文章目录 一. DDL1. 表的DDL1.1. 创建表1.2. 删除表 2. 列族的DDL2.1. 增加一个列簇2.2. 删除列族2.3. 修改列族版本(ing) 二. DML1. 插入与更新数据2. 删除数据3. 清空表 三. DQL1. scan:查一批数据1.1. 查询全部1.2. 过滤rowkey1.3. 过滤列…...

LeetCode-217存在重复的元素

217 存在重复的元素 给定一个整数数组,判断是否存在重复元素。 如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 JavaScript的 Array 对象是用于构造数组的全局对象,数组是类似…...

基于两个单片机串行通信的电子密码锁设计

1.功能 电子号码锁在实际应用中应该有两部分,一部分在外部,有键盘部分和密码显示;另一部分内部,设置密码、显示密码。使用单片机自身带有的串口可以很方便的实现单片机之间的通信,使输入的密码值传送到主机检验是否是…...

Chatbot Arena排行榜单实战指南:从数据采集到模型优化

Chatbot Arena排行榜单实战指南:从数据采集到模型优化 在构建和优化自己的对话AI时,我们常常面临一个核心问题:如何客观、全面地评估它的性能?闭门造车式的测试往往带有主观偏见,而Chatbot Arena这类公开的排行榜单&a…...

从‘噬菌体’到清晰地图:我的LIO-SAM避坑实战记录(含Ubuntu版本选择建议)

从“噬菌体”到清晰地图:LIO-SAM实战避坑指南与Ubuntu版本选择建议 第一次在RViz里看到那个旋转成筒状的地图时,我盯着屏幕足足愣了三分钟——这和我预想中的高精度点云地图相差了十万八千里。更令人崩溃的是,当我把设备搬到室外测试时&#…...

UNIGUI 修改网页图标 Delphi

网页图标delphi 软件上方工具栏Project -> Options -> Application -> Icons修改图标点击第一个LoadIcon按钮,然后选择一个你目标的.ioc格式大小是128*128的图标,点击 Save保存即可。服务器运行图标打开ServerModule页面,点击UniSer…...

Linux内核观测与跟踪的利器BPF环境测试

内核观测工具BPF实例BPF介绍BPF实例使用 BCC 工具集(最简单)使用 libbpf BPF 骨架(更接近生产环境)使用 bpftool 直接加载(适合调试)总结BPF介绍 BPF 最初诞生于 1992 年,是一种用于网络数据包…...

5分钟掌握精灵图智能切割:Pixelorama扩展让资源提取效率倍增

5分钟掌握精灵图智能切割:Pixelorama扩展让资源提取效率倍增 【免费下载链接】Pixelorama A free & open-source 2D sprite editor, made with the Godot Engine! Available on Windows, Linux, macOS and the Web! 项目地址: https://gitcode.com/gh_mirrors…...

# Trae IDE `settings.json` 配置详解与教学文档

Trae IDE settings.json 配置详解与教学文档 一、文档说明 本文档针对 Trae IDE 中 Java 开发核心配置文件 settings.json 进行逐字段解读,结合实际开发场景说明配置目的、作用及最佳实践,适配 Spring Boot + Maven + JDK21 技术栈。 二、配置文件整体作用 settings.json…...

芯片设计中的input2reg时序检查:从SDC配置到实际案例分析

芯片设计中的input2reg时序检查实战指南:从约束配置到调试技巧 在数字IC设计流程中,时序检查是确保芯片功能正确的关键环节。input2reg路径作为四种基本时序路径之一,其特殊性在于数据发起端位于芯片外部,而捕获端位于内部寄存器…...

YOLOv11自定义数据集训练避坑指南:从data.yaml配置到模型选择(实测对比v8)

YOLOv11自定义数据集训练实战:从数据配置到模型调优的深度解析 在计算机视觉领域,目标检测技术的迭代速度令人目不暇接。作为YOLO系列的最新成员,YOLOv11凭借其优化的网络结构和训练策略,正在成为工业界和学术界的热门选择。然而&…...

LeetCode 1423. 可获得的最大点数【定长滑窗,逆向和正向思维】1574

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...

MiniCPM-o-4.5-nvidia-FlagOS与ChatGPT对比评测:代码生成与逻辑推理

MiniCPM-o-4.5-nvidia-FlagOS与ChatGPT对比评测:代码生成与逻辑推理 最近在开发者圈子里,关于开源大模型和闭源大模型谁更强的讨论一直没停过。特别是涉及到代码生成和逻辑推理这种硬核任务,大家心里都有一杆秤。今天,我们就拿一…...