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

直方图比较

目录

1、直方图比较的概念

2、直方图比较的主要原因

3、典型应用场景

4、基础直方图比较

5、多通道直方图比较

6、实时直方图检测

1、直方图比较的概念

       直方图比较是通过数学方法计算两个直方图之间的相似度或差异度的技术。在计算机视觉中,直方图是对图像特征(如颜色、梯度方向等)的统计分布表示,比较两个直方图的相似性可以反映图像内容的相似程度。

2、直方图比较的主要原因

1. 图像相似性判断 通过比较颜色/纹理直方图,可以快速判断两张图片的内容相似性,常用于:
   图像检索
   重复图片检测
   视频关键帧提取
2. 目标识别与匹配 当物体的颜色分布具有特征性时(如红色消防车),直方图比较能辅助识别。
3. 变化检测 监控场景中比较前后帧直方图差异。
4. 颜色校正验证 在图像处理流水线中,通过比较输入输出图像的直方图差异来验证处理效果。


3、典型应用场景

医学影像 :比较病灶区域与正常组织的灰度分布
工业检测 :检测产品颜色是否符合标准(如油漆颜色一致性)
自动驾驶 :通过路标颜色直方图识别交通标志
直方图比较的优势在于计算高效(不受旋转/轻微形变影响),但需注意它缺乏空间信息,常与其他特征结合使用。

4、基础直方图比较

#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main() {// 读取两张对比图像Mat img1 = imread("image1.jpg");Mat img2 = imread("image2.jpg");if(img1.empty() || img2.empty()) return -1;// 转换为HSV色彩空间(比较颜色直方图更有效)Mat hsv1, hsv2;cvtColor(img1, hsv1, COLOR_BGR2HSV);cvtColor(img2, hsv2, COLOR_BGR2HSV);// 设置直方图参数int h_bins = 50, s_bins = 60;int histSize[] = {h_bins, s_bins};float h_range[] = {0, 180};float s_range[] = {0, 256};const float* ranges[] = {h_range, s_range};int channels[] = {0, 1}; // 使用H和S通道// 计算直方图Mat hist1, hist2;calcHist(&hsv1, 1, channels, Mat(), hist1, 2, histSize, ranges, true, false);calcHist(&hsv2, 1, channels, Mat(), hist2, 2, histSize, ranges, true, false);// 归一化直方图normalize(hist1, hist1, 0, 1, NORM_MINMAX, -1, Mat());normalize(hist2, hist2, 0, 1, NORM_MINMAX, -1, Mat());// 比较直方图(四种方法)double compare_methods[4];compare_methods[0] = compareHist(hist1, hist2, HISTCMP_CORREL);compare_methods[1] = compareHist(hist1, hist2, HISTCMP_CHISQR);compare_methods[2] = compareHist(hist1, hist2, HISTCMP_INTERSECT);compare_methods[3] = compareHist(hist1, hist2, HISTCMP_BHATTACHARYYA);// 输出比较结果cout << "相关性比较 [越接近1越相似]: " << compare_methods[0] << endl;cout << "卡方比较 [越接近0越相似]: " << compare_methods[1] << endl;cout << "直方图交集 [越大越相似]: " << compare_methods[2] << endl;cout << "巴氏距离 [越接近0越相似]: " << compare_methods[3] << endl;return 0;
}

比较算法说明

OpenCV提供四种直方图比较方法:

相关性比较

HISTCMP_CORREL

值范围[-1,1],1表示完全匹配

卡方检验

HISTCMP_CHISQR

值范围[0,∞),0表示完全匹配

直方图相交

HISTCMP_INTERSECT

值越大相似度越高

巴氏距离

HISTCMP_BHATTACHARYYA

值范围[0,1],0表示完全匹配

5、多通道直方图比较

// ... 图像读取和转换代码同上 ...// 扩展为3通道直方图(H,S,V)
int channels[] = {0, 1, 2};
int histSize[] = {30, 32, 32}; // HS通道精度更高
float h_range[] = {0, 180};
float s_range[] = {0, 256};
float v_range[] = {0, 256};
const float* ranges[] = {h_range, s_range, v_range};// 计算直方图
calcHist(&hsv1, 1, channels, Mat(), hist1, 3, histSize, ranges, true, false);
calcHist(&hsv2, 1, channels, Mat(), hist2, 3, histSize, ranges, true, false);// 添加EMD(Earth Mover's Distance)比较
Mat sig1, sig2;
// 将直方图转换为特征向量格式
// ... (需要实现直方图到特征向量的转换) ...double emd = EMD(sig1, sig2, DIST_L2);
cout << "推土机距离: " << emd << endl;

6、实时直方图检测

VideoCapture cap(0);
Mat frame, last_frame;
bool first_frame = true;while(true) {cap >> frame;if(frame.empty()) break;Mat hsv;cvtColor(frame, hsv, COLOR_BGR2HSV);// 计算当前帧直方图Mat current_hist;calcHist(&hsv, 1, channels, Mat(), current_hist, 2, histSize, ranges);normalize(current_hist, current_hist, 0, 1, NORM_MINMAX);if(!first_frame) {double similarity = compareHist(last_hist, current_hist, HISTCMP_CORREL);putText(frame, format("相似度: %.2f", similarity), Point(20,50), FONT_HERSHEY_SIMPLEX, 1, Scalar(0,255,0), 2);}first_frame = false;current_hist.copyTo(last_hist);imshow("Live", frame);if(waitKey(30) >= 0) break;
}

相关文章:

直方图比较

目录 1、直方图比较的概念 2、直方图比较的主要原因 3、典型应用场景 4、基础直方图比较 5、多通道直方图比较 6、实时直方图检测 1、直方图比较的概念 直方图比较是通过数学方法计算两个直方图之间的相似度或差异度的技术。在计算机视觉中&#xff0c;直方图是对图像特征…...

【计算机视觉】3d人体重建:PIFu/PIFuHD:高精度三维人体数字化技术指南

深度解析PIFu/PIFuHD&#xff1a;高精度三维人体数字化技术指南 一、项目概述与技术突破1.1 技术定位与核心价值1.2 性能指标对比1.3 技术演进路线 二、环境配置与模型部署2.1 硬件要求2.2 软件安装基础环境配置附加组件安装 2.3 模型下载 三、核心算法解析3.1 网络架构设计多层…...

HTML05:超链接标签及应用

链接标签 <a href"path" target"目标窗口位置">链接文本或图像</a>文本超链接图像超链接 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>链接标签学习</title&…...

JAVA设计模式——(十一)建造者模式(Builder Pattern)

JAVA设计模式——&#xff08;十一&#xff09;建造者模式&#xff08;Builder Pattern&#xff09; 介绍理解实现Phone类具体手机类建造者测试 应用 介绍 建造者模式用于将对象的创建和表示进行分离&#xff0c;即对象创建的过程单独提取出来&#xff0c;作为建造者的职能&am…...

JavaScript 笔记 --- part7 --- JS进阶 (part2)

JS进阶(part2) 内置构造函数 Object: 用于创建对象 String: 用于创建字符串 Number: 用于创建数字 Array: 用于创建数组 Boolean: 用于创建布尔值 Function: 用于创建函数 Date: 用于创建日期对象 RegExp: 用于创建正则表达式对象 Error: 用于创建错误对象 Map: 用于…...

JavaScript 笔记 --- part8 --- JS进阶 (part3)

JS 进阶(part3) 深浅拷贝 只针对引用类型 浅拷贝 浅拷贝只拷贝外面一层的属性, 如果对象里面还有对象, 那么这个对象的引用会被拷贝过去, 所以修改其中一个属性会影响到另一个对象 const obj {name: "zhangsan",age: 18,child: {name: "xiaoming",ag…...

LeetCode 热题 100 46. 全排列

LeetCode 热题 100 | 46. 全排列 大家好&#xff0c;今天我们来解决一道经典的算法题——全排列。这道题在 LeetCode 上被标记为中等难度&#xff0c;要求给定一个不含重复数字的数组 nums&#xff0c;返回其所有可能的全排列。全排列是排列组合中的经典问题&#xff0c;通常可…...

双目视觉的核心目标

通过计算左右图像中同一物体的像素点位置差&#xff08;视差&#xff09;&#xff0c;进而还原出物体在三维空间中的真实位置。 双目视觉的核心流程&#xff1a; 1️⃣ 相机标定&#xff08;calibration&#xff09; 获取左右相机的内参、外参和畸变参数。 获取投影矩阵 Q&a…...

《类和对象(上)》

引言&#xff1a; 上次我们学习了C的一些入门基础&#xff0c;但其实还没有入门C&#xff0c;想要入门C&#xff0c;肯定是要把类和对象这部分学透彻&#xff0c;这次先来学习类和对象&#xff08;上&#xff09; 一&#xff1a;类的定义 1. 类定义格式&#xff1a; class为…...

强化学习ppo算法在大语言模型上跑通

最近在研究强化学习&#xff0c;目标是想在我的机械臂上跑出效果。ppo算法是强化学习领域的经典算法&#xff0c;在网上检索ppo算法&#xff0c;出现的大部分文章都是互相抄袭&#xff0c;上来都列公式&#xff0c;让人看得云里雾里。偶然间发现一个deepspeed使用的example(链接…...

告别散乱的 @ExceptionHandler:实现统一、可维护的 Spring Boot 错误处理

Spring Boot 的异常处理机制一直都烂得可以。即便到了 2025 年&#xff0c;有了这么多进步和新版本&#xff0c;开发者们发现自己还是在跟 ControllerAdvice、分散各处的 ExceptionHandler 方法以及五花八门的响应结构较劲。这真的是一团糟。 无论你是在构建 REST API、微服务…...

Ubuntu安装编译环境

1. 安装基础编译工具链&#xff08;GCC, G, Make 等&#xff09; sudo apt update # 只更新索引信息​&#xff0c;不安装软件 sudo apt install build-essential这会安装以下核心组件&#xff1a; • gcc (GNU C 编译器) • g (GNU C 编译器) • make (构建工具) • libc-…...

Scrapy爬虫实战:如何用Rules实现高效数据采集

Scrapy是一个强大的Python爬虫框架&#xff0c;而其中的Rules类则为爬虫提供了更高级的控制方式。本文将详细介绍如何在Scrapy中使用Rules&#xff0c;以及各个参数的具体作用&#xff0c;并结合实际场景说明Rules的必要性。 为什么需要Rules&#xff1f; 在Web爬取过程中&…...

ERP系统源码,有演示,开发文档、数据库文档齐全,支持二次开发

一套开箱即用的云端ERP系统源代码&#xff0c;小型工厂ERP系统源码 SaaS ERP是一套开箱即用的云端ERP系统&#xff0c;有演示&#xff0c;开发文档&#xff0c;数据库文档齐全&#xff0c;自主版权落地实例&#xff0c;适合项目二开。 SaaS ERP具有高度的灵活性和可扩展性&am…...

如何将腾讯云的测试集成到自己的SpringBoot中

1.创建Util 我们将之前测试的test复制过来&#xff0c; 1.将方法里面的固定参数设置出来private 2.将方法里面的变化参数设置作为传入参数 3.返回String类型的URL地址 完整代码如下&#xff1a; package org.huangyingyuan.utils;import com.qcloud.cos.COSClient; import…...

Java后端开发day41--IO流(一)--FileOutputStreamFileInputStream

(以下内容全部来自上述课程) IO流&#xff1a;存储和读取数据的解决方案 I&#xff1a;input O&#xff1a;output 流&#xff1a;像水流一样传输数据 1. 流的分类 纯文本文件&#xff1a;Windows自带的记事本打开就能读懂 2. IO流的体系 3 字节流 3.1 FileOutputStream 操…...

Spring 框架中 @Configuration 注解详解

在 Spring 框架的开发过程中&#xff0c;Configuration注解是一个极为重要的存在&#xff0c;它让开发者能够以一种更加简洁、灵活的方式来管理应用程序的配置信息&#xff0c;极大地提升了开发效率和代码的可维护性。 本文将深入剖析Configuration注解的方方面面&#xff0c;…...

手机打电话时由对方DTMF响应切换多级IVR语音应答(一)

手机打电话时由对方DTMF响应切换多级IVR语音应答&#xff08;一&#xff09; --本地AI电话机器人 一、前言 经前面的系列篇章中&#xff0c;我们实现了拦截手机打电话的声音、根据通话对方声音提取DTMF字符。由此&#xff0c;我们通往AI电话机器人的道路就畅通无阻了。 如果…...

GM DC Monitor v2.0 - 平台自定义-使用说明

平台支持对LOGO、登录页背景图、平台名称、小标题名称、网址、告警中心、知识库名称进行自定义&#xff0c;自定义完以后&#xff0c;平台将更加适合您的工作场景&#xff01; LOGO自定义建议使用100*80的png背景透明图片&#xff0c;大小不超过200k 登录背景建议使用1920*71…...

实验-数字电路设计2-复用器和七段数码管(数字逻辑)

目录 一、实验内容 二、实验步骤 2.1 复用器的设计 2.2 七段数码管的设计 三、调试过程 3.1 复用器调试过程 3.2 七段数码管的调试过程 四、实验使用环境 五、实验小结和思考 一、实验内容 a) 介绍 在这次实验中&#xff0c;你将熟悉 Logisim 的操作流程&#xff…...

HTTP/HTTPS协议(请求响应模型、状态码)

目录 HTTP/HTTPS协议简介 HTTP协议 HTTPS协议 请求 - 响应模型 HTTP请求 &#xff08;二&#xff09;HTTP响应 HTTPS协议与HTTP协议在请求 - 响应模型中的区别 HTTP/HTTPS协议简介 HTTP协议 定义 HTTP&#xff08;HyperText Transfer Protocol&#xff09;即超文本传输…...

详解RabbitMQ工作模式之路由模式

目录 路由模式 概念介绍 工作原理 特点 应用场景 实现步骤 代码案例 引入依赖 常量类 编写生产者代码 编写消费者1代码 编写消费者2代码 运行代码 路由模式 概念介绍 路由模式是发布订阅模式的变种, 在发布订阅基础上, 增加路由key。 发布订阅模式是⽆条件的将所有…...

青少年编程与数学 02-018 C++数据结构与算法 26课题、数据压缩算法

青少年编程与数学 02-018 C数据结构与算法 26课题、数据压缩算法 一、无损压缩算法1. Huffman编码2. Lempel-Ziv-Welch (LZW) 编码3. Run-Length Encoding (RLE) 二、有损压缩算法1. DEFLATE&#xff08;ZIP压缩&#xff09;2. Brotli3. LZMA4. Zstandard (Zstd) 总结 课题摘要…...

Sim Studio 是一个开源的代理工作流程构建器。Sim Studio 的界面是一种轻量级、直观的方式,可快速构建和部署LLMs与您最喜欢的工具连接

​一、软件介绍 文末提供程序和源码下载 Sim Studio开源程序 是一个功能强大、用户友好的平台&#xff0c;用于构建、测试和优化代理工作流程&#xff0c;Sim Studio 是一个开源的代理工作流程构建器。Sim Studio 的界面是一种轻量级、直观的方式&#xff0c;可快速构建和部署…...

基于Boost库、Jsoncpp、cppjieba、cpp-httplib等构建Boost搜索引擎

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;项目 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 项目背景技术栈和项目环境正排索引和倒排索引数据去标签与清洗下载数据源去标签 建立索引构建正排索引构建倒排索引 建立搜索引擎h…...

文本三剑客

目录 1.文本三剑客 2.awk 常见的内置变量 3.sed 选项&#xff1a; 脚本语法&#xff1a; 查找替换&#xff1a; 步进&#xff1a; 1.文本三剑客 awk&#xff1b;sed&#xff1b;grep 读取方式为&#xff1a;vim先将整个文件放入内存中进行编辑&#xff1b;awk是先将文…...

使用 Microsoft 365 Copilot 上传手机图片,实现更高效的信息提取

过去&#xff0c;如果你想从手机上的图片中提取信息或获取洞察&#xff0c;流程往往十分繁琐&#xff1a;需要先把图片发到邮箱&#xff0c;再下载到电脑&#xff0c;最后才能上传到 Copilot 聊天框中。 现在不必如此了&#xff01;在你熟悉的 Microsoft 365 Windows 应用或网…...

simulink使能子系统的四种配置

目录 前言 一、模型 二、特性 组合1&#xff1a;使能模块为保持&#xff0c;输出为保持 组合2&#xff1a;使能模块为保持&#xff0c;输出为重置 组合3&#xff1a;使能模块为重置&#xff0c;输出为保持 组合4&#xff1a;使能模块为重置&#xff0c;输出为重置 仓库…...

一、Hadoop历史发展与优劣势

引言&#xff1a;大数据浪潮中的“大象”——Hadoop 的足迹与权衡 当数据以前所未有的速度和规模涌现&#xff0c;大数据时代悄然来临&#xff0c;传统的数据处理方式显得力不从心。在这样的背景下&#xff0c;Hadoop 应运而生&#xff0c;如同一头强健而可靠的大象&#xff0…...

conda配置好的pytorch在jupyter中如何配置

配置 其实不用再配置了 如下图&#xff08;主要是激活pytorch环境&#xff0c;再jupyter notebook&#xff09; jupyter运行快捷键shiftenter 新建文件夹folder&#xff0c;新建notebook 使用 帮助文档&#xff08;两种方式&#xff09; ctrl/ 注释...

文本三剑客试题

目录 1找出/etc/passwd文件下的root开头的行 2找出/etc/passwd 含有root 的行 3找出/etc/passwd 文件中 root开头或 mail 开头的行 4过滤出 /etc/passwd文件中已bin开头的行&#xff0c;并显示行号 5过滤掉/etc/passwd文件中 root开头的行 6.在当前目录下所有.cc 的文件中…...

vscode docker 调试

目录 启动docker&#xff1a; vscode docker 调试 如果已经安装docker并且启动了。 启动docker&#xff1a; docker exec -it nlf /bin/bash vscode docker 调试 按照图中1 2 3 的顺序&#xff0c;进入&#xff0c;可以加载docker进行调试了。...

【程序人生】“阶段总结“-安危相易

好久没有坐下静下心回顾过去一段时间内发生的事以及经历过后的感想。今天趁着五一假期的机会细细盘一盘过去这段时间内的点点感悟吧...... 记得上一次的阶段总结停留在了24年的11月底。当初计划的是每月月底会抽出时间来进行一次深度的回顾与阶段总结&#xff0c;但是计划总赶…...

【Linux】深入理解Linux基础IO:从文件描述符到缓冲区设计

目录 一、文件理解&#xff08;复习&#xff09; 1、理解概念复习 &#xff08;1&#xff09;狭义理解 &#xff08;2&#xff09;广义理解 &#xff08;3&#xff09;文件操作的归类认知 &#xff08;4&#xff09;系统角度 2、C语言文件复习 &#xff08;1&#xff0…...

【纪念我的365天】我的创作纪念日

机缘 最开始接触csdn时我从没想过我会是博客的创作者&#xff0c;最初我认为它是一个为我解决问题的作业神器&#xff0c;开始接触编程时什么都不懂&#xff0c;为各种问题查阅资料&#xff0c;可偏偏就是无法越过这道坎。于是机遇巧合之下遇到一个人他教我&#xff0c;也是他…...

方法:批量识别图片区域文字并重命名,批量识别指定区域内容改名,基于QT和阿里云的实现方案,详细方法

基于QT和阿里云的图片区域文字识别与批量重命名方案 项目场景 ​​企业档案管理​​:批量处理扫描合同、发票等文档,根据编号或关键信息自动重命名文件​​医疗影像管理​​:识别X光、CT等医学影像中的患者信息,按姓名+检查日期重命名​​电商订单处理​​:从订单截图中提…...

民宿管理系统5

管理员管理&#xff1a; 新增管理员信息&#xff1a; 前端效果&#xff1a; 前端代码&#xff1a; <body> <div class"layui-fluid"><div class"layui-row"><div class"layui-form"><div class"layui-form-i…...

AI日报 · 2025年5月05日|雅诗兰黛与微软合作成立 AI 创新实验室,加速美妆产品研发与营销

1、苹果与 Anthropic 深化合作&#xff0c;内部测试 AI 驱动的新版 Xcode 据多方报道&#xff0c;苹果公司正与人工智能初创公司 Anthropic 合作&#xff0c;开发集成 AI 功能的新一代 Xcode 开发平台。该平台旨在利用 Anthropic 强大的 Claude Sonnet 模型&#xff0c;为开发…...

Matlab实现基于CNN-GRU的锂电池SOH估计

Matlab实现基于CNN-GRU的锂电池SOH估计 目录 Matlab实现基于CNN-GRU的锂电池SOH估计效果一览基本介绍程序设计参考资料 效果一览 基本介绍 锂电池SOH估计&#xff01;基于CNN-GRU的锂电池健康状态估计。CNN-GRU模型通过融合局部特征提取与长期依赖建模&#xff0c;显著提升了锂…...

神经网络在专家系统中的应用:从符号逻辑到连接主义的融合创新

自人工智能作为一个学科面世以来&#xff0c;关于它的研究途径就存在两种不同的观点。一种观点主张对人脑的结构及机理开展研究&#xff0c;并通过大规模集成简单信息处理单元来模拟人脑对信息的处理&#xff0c;神经网络是这一观点的代表。关于这方面的研究一般被称为连接机制…...

【Hive入门】Hive安全管理与权限控制:基于SQL标准的授权GRANT REVOKE深度解析

目录 引言 1 Hive权限模型概述 2 SQL标准授权基础 2.1 核心概念解析 2.2 授权模型工作流程 3 GRANT/REVOKE语法详解 3.1 基础授权语法 3.2 权限回收语法 3.3 参数说明 4 授权场景 4.1 基础授权示例 4.2 列级权限控制 4.3 视图权限管理 5 权限查询与验证 5.1 查看…...

详解RabbitMQ工作模式之发布订阅模式

目录 发布订阅模式 概念 概念介绍 特点和优势 应用场景 注意事项 代码案例 引入依赖 常量类 编写生产者代码 编写消费者1代码 运行代码 发布订阅模式 概念 RabbitMQ的发布订阅模式&#xff08;Publish/Subscribe&#xff09;是一种消息传递模式&#xff0c;它允许消…...

JobHistory Server的配置和启动

在 Hadoop 集群里&#xff0c;JobHistory Server&#xff08;JHS&#xff09;负责为所有已完成的 MapReduce 作业提供元数据与 Web 可视化&#xff1b;只有它启动并配置正确&#xff0c;开发者才能通过 http://<host>:19888 查看作业的执行详情、计数器和任务日志…...

刷leetcodehot100返航版--哈希表5/5

回顾一下之前做的哈希&#xff0c;貌似只有用到 unordered_set&#xff1a;存储无序元素unordered_map&#xff1a;存储无序键值对 代码随想录 常用代码模板2——数据结构 - AcWing C知识回顾-CSDN博客 1.两数之和5/5【30min】 1. 两数之和 - 力扣&#xff08;LeetCode&…...

【STM32 学习笔记】GPIO输入与输出

GPIO详解 一、GPIO基本概念 GPIO&#xff08;通用输入输出&#xff09;是微控制器与外部设备交互的核心接口&#xff0c;具有以下特性&#xff1a; 可编程控制输入/输出模式支持数字信号的读取与输出集成多种保护机制复用功能支持片上外设连接 二、GPIO位结构解析 2.1 保护二…...

网狐飞云娱乐三端源码深度实测:组件结构拆解与部署Bug复盘指南(附代码分析)

本文基于“网狐系列三网通飞云娱乐电玩”源码包&#xff0c;从项目结构、界面逻辑、三端兼容性、机器人机制、本地部署实践等多维角度进行全面剖析&#xff0c;并附录多个真实报错修复案例与源码片段。本组件适用于本地学习、框架研究与技术测试&#xff0c;不具备线上部署条件…...

HTML5好看的水果蔬菜在线商城网站源码系列模板9

文章目录 1.设计来源1.1 主界面1.2 商品界面1.3 购物车界面1.4 心愿列表界面1.5 商品信息界面1.6 博客界面1.7 关于我们界面1.8 联系我们界面1.9 常见问题界面1.10 登录界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&…...

【ArcGIS Pro微课1000例】0066:多边形要素添加折点,将曲线线段(贝塞尔、圆弧和椭圆弧)替换为线段?

文章目录 增密工具介绍举例1. 圆2. 椭圆3. 折线增密工具介绍 ArcGIS Pro中提供了【增密】工具,作用是: 沿线或多边形要素添加折点。还可将曲线线段(贝塞尔、圆弧和椭圆弧)替换为线段。 原理图如下所示: 用法: 通过距离参数对直线段进行增密。利用距离、最大偏转角或最大…...

虚拟dom是什么,他有什么好处

本编&#xff0c;博主将从虚拟dom是什么引出&#xff0c;为什么需要虚拟dom&#xff0c; 虚拟dom的益处 &#xff0c; 为什么需要Diff算法&#xff0c;for循环中key的作用是什么。 1.虚拟dom是什么 虚拟dom就是以js对象的形式表示真实dom结构 例如 const newVNode {type: di…...

算力经济模型推演:从中心化到去中心化算力市场的转变(区块链+智能合约的算力交易原型设计)

一、算力经济的历史脉络与范式转移 1.1 中心化算力市场的演进困境 传统算力市场以超算中心、云计算平台为核心载体&#xff0c;其运营模式呈现强中心化特征。中国移动构建的"四算融合"网络虽实现百万级服务器的智能调度&#xff0c;但动态资源分配仍受制于集中式控…...