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

opencv:基于暗通道先验(DCP)的内窥镜图像去雾

目录

项目大体情况

暗通道先验(Dark Channel Prior, DCP)原理

项目代码解析

该项目是由我和我导师与舟山某医院合作开发的一个基于暗通道先验(Dark Channel Prior,DCP)的内窥镜图像去雾方法。具体来说,我们将应用该方法来去除内窥镜图像中的雾霾,使得图像更加清晰,便于后续的分析和诊断。该算法基于图像的暗通道信息,能有效地估算出图像的雾霾程度,并进行恢复。

 参考文献

  1. He, K., Sun, J., & Tang, X. (2010). "Single image haze removal using dark channel prior." IEEE Conference on Computer Vision and Pattern Recognition (CVPR). DOI: 10.1109/CVPR.2010.5539971
  2. Bertalmío, M., & M. S. (2007). "Image inpainting and restoration using dark channel prior." Image Processing: Algorithms and Systems XII. 链接
  3. Fattal, R. (2008). "Single image dehazing." ACM Transactions on Graphics (TOG), 27(3), 1-9. DOI: 10.1145/1360612.1360652

项目大体情况

因为是寒假在家,所以是没有医院的设备,需要我自己去大概模拟那个环境。具体要实现的目标差不多就是,我需要让电脑A(电脑A认为是内窥镜采集的图像)通过视频采集卡连接到电脑B(用的是Ubuntu的系统,认为是医院的设备),然后用自己编写的程序读取到A的屏幕信息,然后进行暗通道先验窥镜图像去雾。然后图像是4K30帧,所以每帧的图像需要在33ms内处理完成。

视频采集卡,我用的是绿联的产品。

ubantu的主机,我用的是英伟达的一块专门用于深度学习的板子。

下面的是大体的效果,左边的电脑是我采用了远程桌面连接了那块板子,左右电脑之间是用视频采集卡链接。

最终的延迟大概是,传输延迟在8ms左右,每一帧的代码处理时间是在15ms左右。

暗通道先验(Dark Channel Prior, DCP)原理

暗通道先验(DCP)是一种基于图像统计学的去雾方法,它的基本思想是利用图像的暗通道信息来估计图像的雾霾程度,从而恢复出原始的清晰图像。这个方法由**He et al.**于2010年提出,广泛应用于单幅图像的去雾任务中。

1. 暗通道的定义

暗通道是指图像中每个像素的RGB通道中,最小值的最小值。具体来说,对于图像中的每个像素,找到该像素的三个颜色通道(红色、绿色和蓝色)的最小值,然后在所有像素中找到这些最小值中的最小值,称为暗通道。在实际操作中,暗通道通通常使用3x3的窗口来进行局部计算。

公式表达如下:

I_{\text{dark}}(x) = \min_{c \in \{r,g,b\}} \left( \min_{y \in \Omega(x)} I_c(y) \right)

  • I_{dark}(x) 表示图像中像素$x$的暗通道值。
  • I_c(y)表示像素y在颜色通道$c$上的值($c$为RGB)。
  • $\Omega(x)$ 表示以像素$x$为中心的一个局部区域,通常是一个$3 \times 3$的邻域。
2. 暗通道先验的核心思想

暗通道先验的核心假设是:在自然场景中,除了天空等透明物体,几乎所有图像中的像素都会有至少一个颜色通道的强度接近于零。换句话说,对于大多数图像中的像素,至少有一个颜色通道的值会非常小。

  • 雾霾图像:由于雾霾的存在,图像的颜色和对比度会发生改变,使得图像的暗通道值通常会比较高。
  • 无雾图像:清晰的图像中,暗通道值会比较小,因为大多数自然物体(如草地、建筑物等)都有至少一个颜色通道的值接近于零。

这个先验的假设使得我们可以利用图像的暗通道信息来估算图像的雾霾程度。

3. 雾霾图像的模型

为了能够从暗通道先验中恢复出清晰图像,我们需要建立雾霾图像的数学模型。雾霾图像可以用一个简单的物理模型来描述:

I(x) = J(x) t(x) + A(1 - t(x))

  • $I(x)$ 表示输入的有雾图像的像素值。
  • $J(x)$表示无雾图像(清晰图像)的像素值。
  • $t(x)$ 表示透射率(transmittance),反映了大气透过率(通常值在[0,1]之间,值越大表示图像越清晰,值越小表示雾霾越重)。
  • $A$表示大气光(通常是图像中亮度较高的区域的颜色值)。
4. 透射率估计

根据暗通道先验,雾霾图像的暗通道值通常比清晰图像的暗通道值要高。通过以下步骤可以估计透射率:

  1. 计算暗通道:首先计算图像的暗通道,对于每个像素,找到三个颜色通道中的最小值,并且选取局部窗口中的最小值。

  2. 估算大气光$A$:大气光是图像中亮度最高的部分。通过寻找图像中暗通道值最小的像素位置,估算大气光。通常,选择图像中亮度最强的像素值作为大气光。

  3. 估算透射率$t(x)$:通过以下公式计算每个像素的透射率:

    t(x) = 1 - \omega \cdot \frac{I_{\text{dark}}(x)}{A}

    其中,$\omega$是一个调节参数,通常取值为0.95。该公式基于暗通道先验的假设,透射率与暗通道的值呈反比关系。也就是说,暗通道值越大,透射率越小,说明图像受雾霾的影响越大。

  4. 恢复清晰图像:根据透射率估计值和大气光值,恢复清晰图像:

    J(x) = \frac{I(x) - A(1 - t(x))}{t(x)}

    这个恢复过程通过反向推算透射率和大气光,去除了雾霾的影响,恢复出清晰图像。

项目代码解析

1. 引入必要的库和定义参数

#include <opencv2/opencv.hpp>
#include <iostream>
#include <cmath>
#include <vector>
#include <chrono>using namespace cv;
using namespace std;int block = 1; // block * block 的矩形,block 越大,速度越快,但失真越明显
double omega = 0.6; // 除雾程度,[0,1],值越大,处理后图像颜色越深

在这一段,我们引入了OpenCV库以及其他一些标准库(如cmath、vector、chrono等)。OpenCV提供了图像处理的功能,而chrono则用于计时,帮助我们分析代码的执行效率。

block:这是腐蚀操作的块大小,控制去雾速度和效果的平衡。block越大,计算速度越快,但可能会导致更多失真。

omega:去雾强度的控制参数,决定了去雾的程度,数值越大,图像颜色越深。

2. 最小值函数

double min_3(double g, double b, double r) {return std::min({ g, b, r });
}

这段代码定义了一个简单的函数min_3,它用于计算RGB图像中三个通道(红、绿、蓝)的最小值。这在暗通道先验的计算中是非常重要的步骤。

3. 去雾函数

Mat defogging(Mat image_in, int block, double omega) {vector<Mat> channels(3);split(image_in, channels);.......parallel_for_(Range(0, image_in.rows), [&](const Range& range) {.......});return out;
}

这段代码实现了图像去雾的核心部分。首先,它会将输入图像分割成RGB三个通道。然后,通过计算每个像素点的暗通道(即最小RGB值),来估算图像的雾霾程度。(这里没有给出完整代码)

  • 使用getStructuringElement创建了一个大小为block的矩形核,然后通过erode操作提取图像的暗通道。
  • omega参数用于控制去雾强度,A为常数,代表白色光的RGB值,最终通过调整亮度来恢复图像清晰度。

在处理每一行图像时,我们使用了OpenCV的parallel_for_函数来并行化操作,提升处理效率。

4. MSCN计算

Mat computeMSCN(const Mat& img, double sigma = 7.0) {Mat mu, mu_sq, sigma_img, MSCN;GaussianBlur(img, mu, Size(7, 7), sigma);mu_sq = mu.mul(mu);Mat img_sq = img.mul(img);GaussianBlur(img_sq, sigma_img, Size(7, 7), sigma);sigma_img = cv::abs(sigma_img - mu_sq);sigma_img.convertTo(sigma_img, CV_32F);cv::sqrt(sigma_img, sigma_img);MSCN = (img - mu) / (sigma_img + 1.0);return MSCN;
}

在这里,我们计算了MSCN(均值和标准差归一化)系数,这是NIQE(自然图像质量评估)算法的一个重要步骤。通过高斯模糊计算图像的均值和方差,进而得到标准化的MSCN系数。这一过程为后续的图像质量评估提供了基础。

5. 计算NIQE分数

double calculateNIQE(const Mat& img) {Mat gray;cvtColor(img, gray, COLOR_BGR2GRAY);gray.convertTo(gray, CV_32F);Mat MSCN = computeMSCN(gray);vector<double> imgFeatures = computeFeatures(MSCN);vector<double> naturalModel = getNaturalSceneModel();return computeDistance(imgFeatures, naturalModel);
}

这段代码计算图像的NIQE分数。首先,将图像转换为灰度图,然后计算其MSCN系数,并提取图像的统计特征。最后,计算图像特征与自然场景模型之间的欧几里得距离,这个距离值作为图像的质量评分,数值越小表示图像质量越好。

6. 视频捕捉和处理

VideoCapture cap(0); // 打开摄像头if (!cap.isOpened()) {cerr << "无法打开采集卡" << endl;return -1;
}while (true) {Mat frame;cap >> frame;if (frame.empty()) {cerr << "无法读取视频帧" << endl;break;}// 去雾处理Mat dehazed = defogging(frame, block, omega);hconcat(frame, dehazed, combined); // 水平拼接imshow("原图和去雾后图像", combined);imshow("去雾后图像", dehazed);if (waitKey(1) == 'q') break;
}cap.release();
destroyAllWindows();

这一部分代码实现了视频的实时处理。首先打开摄像头,并捕捉每一帧图像。对每一帧图像进行去雾处理,并使用imshow函数将原图与去雾后的图像拼接在一起进行显示。

最终的延迟大概是,传输延迟在8ms左右,每一帧的代码处理时间是在15ms左右。

相关文章:

opencv:基于暗通道先验(DCP)的内窥镜图像去雾

目录 项目大体情况 暗通道先验&#xff08;Dark Channel Prior, DCP&#xff09;原理 项目代码解析 该项目是由我和我导师与舟山某医院合作开发的一个基于暗通道先验&#xff08;Dark Channel Prior&#xff0c;DCP&#xff09;的内窥镜图像去雾方法。具体来说&#xff0c;…...

2025年物联网相关专业毕业论文选题参考,文末联系,选题相关资料提供

一、智能穿戴解决方案研究方向 序号解决方案论文选题论文研究方向1智能腰带健康监测基于SpringBoot和Vue的智能腰带健康监测数据可视化平台开发研究如何利用SpringBoot和Vue技术栈开发一个数据可视化平台&#xff0c;用于展示智能腰带健康监测采集的数据&#xff0c;如心率、血…...

npm无法加载文件 因为此系统禁止运行脚本

安装nodejs后遇到问题&#xff1a; 在项目里【node -v】可以打印出来&#xff0c;【npm -v】打印不出来&#xff0c;显示npm无法加载文件 因为此系统禁止运行脚本。 但是在winr&#xff0c;cmd里【node -v】,【npm -v】都也可打印出来。 解决方法&#xff1a; cmd里可以打印出…...

使用PyCharm创建项目以及如何注释代码

创建好项目后会出现如下图所示的画面&#xff0c;我们可以通过在项目文件夹上点击鼠标右键&#xff0c;选择“New”菜单下的“Python File”来创建一个 Python 文件&#xff0c;在给文件命名时建议使用英文字母和下划线的组合&#xff0c;创建好的 Python 文件会自动打开&#…...

Qt中QFile文件读写操作和QFileInfo文件信息读取方法(详细图文教程)

&#x1f4aa; 图像算法工程师&#xff0c;专业从事且热爱图像处理&#xff0c;图像处理专栏更新如下&#x1f447;&#xff1a; &#x1f4dd;《图像去噪》 &#x1f4dd;《超分辨率重建》 &#x1f4dd;《语义分割》 &#x1f4dd;《风格迁移》 &#x1f4dd;《目标检测》 &a…...

CF998A Balloons​ 构造 ​

Balloons 算法&#xff1a;构造 rating : 1000 思路&#xff1a; 分情况讨论&#xff1a; 1. 当只有一个气球包时&#xff0c;肯定不行 2.当有两个气球包时&#xff0c;若两个气球包的气球个数相同则不行 3.其余的情况都是可以的&#xff0c;题目问给格里高利的气球包数…...

python基础入门:3.5实战:词频统计工具

Python词频统计终极指南&#xff1a;字典与排序的完美结合 import re from collections import defaultdictdef word_frequency_analysis(file_path, top_n10):"""完整的词频统计解决方案:param file_path: 文本文件路径:param top_n: 显示前N个高频词:return:…...

面试准备——Java理论高级【笔试,面试的核心重点】

集合框架 Java集合框架是面试中的重中之重&#xff0c;尤其是对List、Set、Map的实现类及其底层原理的考察。 1. List ArrayList&#xff1a; 底层是动态数组&#xff0c;支持随机访问&#xff08;通过索引&#xff09;&#xff0c;时间复杂度为O(1)。插入和删除元素时&#…...

Docker 部署 verdaccio 搭建 npm 私服

一、镜像获取 # 获取 verdaccio 镜像 docker pull verdaccio/verdaccio 二、修改配置文件 cd /wwwroot/opt/docker/verdaccio/conf vim config.yaml config.yaml 配置文件如下&#xff0c;可以根据自己的需要进行修改 # # This is the default configuration file. It all…...

每日一题--数组中只出现一次的两个数字

数组中只出现一次的两个数字 题目描述数据范围提示 示例示例1示例2 题解解题思路位运算方法步骤&#xff1a; 代码实现代码解析时间与空间复杂度按位与操作获取最小位1的原理为什么选择最低有效的 1 位而不是其他位&#xff1f; 题目描述 一个整型数组里除了两个数字只出现一次…...

蓝耘智算平台与DeepSeek R1模型:推动深度学习发展

公主请阅 前言何为DeepSeek R1DeepSeek R1 的特点DeepSeek R1 的应用领域DeepSeek R1 与其他模型的对比 何为蓝耘智算平台使用蓝耘智算平台深度使用DeepSeek R1代码解释&#xff1a;处理示例输入&#xff1a;输出结果&#xff1a; 前言 在深度学习领域&#xff0c;创新迭代日新…...

数据中台是什么?:架构演进、业务整合、方向演进

文章目录 1. 引言2. 数据中台的概念与沿革2.1 概念定义2.2 历史沿革 3. 数据中台的架构组成与关键技术要素解析3.1 架构组成3.2 关键技术要素 4. 数据中台与其他平台的对比详细解析 5. 综合案例&#xff1a;金融行业数据中台落地实践5.1 背景5.2 解决方案5.3 成果与价值 6. 方向…...

告别2023~2024

时间过得真快&#xff0c;距离上次写作2年多了。2023年&#xff5e;2024年的这两年时光里经历太多人生大事&#xff1a; 房贷&#xff0c;提前还贷买车&#xff0c;全款拿下租房搬家媳妇怀孕&#xff0c;独自照顾&#xff0c;……老人离世开盲盒喜提千金&#xff0c;百岁宴&am…...

PMO项目管理规范标准

这份文档是一份关于 PMO 项目管理规范标准的 V3.0 版本。以下是该文档的主要内容&#xff1a; 1. 立项管理 - 立项标准、级别划分和管理&#xff1a;定义了立项管理的标准、级别划分和管理&#xff0c;包括立项的审批流程、产品可行性分析、立项建议书、产品需求文档等。 - 立项…...

通过类加载和初始化的一些题目理解Java类加载过程

通过题目重点理解&#xff1a;Class加载流程和运行时区域 目录 子类和父类static变量父子类加载顺序2class.forName初始化 子类和父类static变量 class Parent {static int a 1;static int b 2;static int c;static {c 3;System.out.println("parent static block&quo…...

【人工智能】解码语言之谜:使用Python构建神经机器翻译系统

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 神经机器翻译(NMT)是近年来机器翻译领域的一项重大突破。它利用深度学习模型,特别是循环神经网络(RNN)和Transformer网络,以端到端的…...

瑞芯微 Rockchip 系列 RK3588 主流深度学习框架模型转成 rknn 模型教程

前言 在瑞芯微 Rockchip 芯片上进行 NPU 推理&#xff0c;需要先将模型文件转换成 rknn 模型文件&#xff0c;才能执行各种推理任务。本文将介绍如何安装各种工具&#xff0c;并最终实现将各种深度学习框架的模型文件转换成 rknn 文件。 本教程不仅适合 RK3588 平台&#xff…...

51单片机俄罗斯方块计分函数

/************************************************************************************************************** * 名称&#xff1a;scoring * 功能&#xff1a;计分 * 参数&#xff1a;NULL * 返回&#xff1a;NULL * 备注&#xff1a;采用非阻塞延时 ****************…...

C++线程池

使用线程情况比较频繁的地方&#xff0c;由于线程的创建及销毁都会产生对资源的占用及性能的损耗。为了优化性能&#xff0c;提升效率&#xff0c;在这种场景中&#xff0c;就应该使用线程池来处理任务。 线程池创建的关键点&#xff1a; 装载线程的容器&#xff0c;在C中使用…...

Golang GORM系列:定义GORM模型及关系指南

使用GORM进行数据库管理的核心是定义模型的技能。模型是程序的面向对象结构和数据库的关系世界之间的纽带。本文深入研究了在GORM中创建成功模型的艺术&#xff0c;研究了如何设计结构化的Go结构&#xff0c;用标记注释字段&#xff0c;以及开发跨模型的链接&#xff0c;以便最…...

ssm校园二手交易平台小程序

博主介绍&#xff1a;✌程序猿徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

【虚幻引擎UE】AOI算法介绍与实现案例

【虚幻引擎UE】AOI算法介绍与实现 一、AOI算法介绍AOI算法的典型应用场景二、AOI相关算法1. 边界框法(Bounding Box Method)2. 动态AOI算法3. 布尔运算(Boolean Operations)4. 四叉树(Quadtree)5. R树(R-Tree)6. 圆形AOI算法7. 网格分割(Grid Partitioning)8. 多边形…...

JavaScript 基础语法:变量、数据类型、运算符、条件语句、循环

JavaScript 是一种动态类型的脚本语言&#xff0c;广泛用于前端开发。以下是 JavaScript 基础语法的核心内容&#xff0c;包括变量、数据类型、运算符、条件语句和循环。 --- ### 1. 变量 变量用于存储数据。JavaScript 中有三种声明变量的方式&#xff1a; - **var**&…...

ASP.NET Core 如何使用 C# 从端点发出 GET 请求

使用 C#&#xff0c;从 REST API 端点获取 JSON&#xff1b;如何从 REST API 接收 JSON 数据。 本文需要 ASP .NET Core&#xff0c;并兼容 .NET Core 3.1、.NET 6和.NET 8。 要将数据发布到端点&#xff0c;请参阅本文。 使用 . 从端点发布 GET 数据非常容易HttpClient&…...

Docker 部署 MinIO | 国内阿里镜像

一、导读 Minio 是个基于 Golang 编写的开源对象存储套件&#xff0c;基于Apache License v2.0开源协议&#xff0c;虽然轻量&#xff0c;却拥有着不错的性能。它兼容亚马逊S3云存储服务接口。可以很简单的和其他应用结合使用&#xff0c;例如 NodeJS、Redis、MySQL等。 二、…...

量化交易数据获取:xtquant库的高效应用

量化交易数据获取&#xff1a;xtquant库的高效应用 在量化交易领域&#xff0c;历史行情数据的重要性不言而喻。它不仅为策略回测提供基础&#xff0c;也是实时交易决策的重要参考。本文将介绍如何使用xtquant库来高效获取和处理历史行情数据。 技术背景与应用场景 对于量化…...

Mysql中存储引擎各种介绍以及应用场景、优缺点

概述 MySQL 提供了多种存储引擎&#xff0c;每种引擎有不同的特点和适用场景。以下是几种常见的 MySQL 存储引擎的详细介绍&#xff0c;包括它们的底层工作原理、优缺点&#xff0c;以及为什么 MySQL 默认选择某种引擎。 1. InnoDB 底层工作原理&#xff1a; 事务支持&#…...

面试题整理:Java虚拟机 JVM 内存区域、垃圾回收、类加载器

文章目录 JVM虚拟机内存区域1. ⭐JVM的内存区域有哪些&#xff1f;每个区域的作用是什么&#xff1f;2. 堆和栈的区别是什么&#xff1f;3. 堆内存是如何划分的&#xff1f;4. 永久代和元空间是什么关系&#xff1f;5. 对JVM常量池的理解&#xff1f;6. ⭐Java 对象的创建过程&…...

ASP.NET Core 使用 WebClient 从 URL 下载

本文使用 ASP .NET Core 3.1&#xff0c;但它在.NET 5、 .NET 6和.NET 8上也同样适用。如果使用较旧的.NET Framework&#xff0c;请参阅本文&#xff0c;不过&#xff0c;变化不大。 如果想要从 URL 下载任何数据类型&#xff0c;请参阅本文&#xff1a;HttpClient 使用WebC…...

第六届MathorCup高校数学建模挑战赛-A题:淡水养殖池塘水华发生及池水自净化研究

目录 摘要 1 问题的重述 2 问题的分析 2.1 问题一的分析 2.2 问题二的分析 2.3 问题三的分析 2.4 问题四的分析 2.5 问题五的分析 3. 问题的假设 4. 符号说明 5. 模型的建立与求解 5.1 问题一的建模与求解 5.1.1 分析对象与指标的选取 5.1.2 折线图分析 5.1.3 相关性分析 5.1.4…...

GnuTLS: 在 pull 函数中出错。 无法建立 SSL 连接。

提示信息 [root@localhost ~]# wget https://download.docker.com/linux/static/stable/x86_64/docker-27.5.1.tgz --2025-02-06 12:45:34-- https://download.docker.com/linux/static/stable/x86_64/docker-27.5.1.tgz 正在解析主机 download.docker.com (download.docker.…...

OpenAI 实战进阶教程 - 第十二节 : 多模态任务开发(文本、图像、音频)

适用读者与目标 适用读者&#xff1a;已经熟悉基础的 OpenAI API 调用方式&#xff0c;对文本生成或数据处理有一定经验的计算机从业人员。目标&#xff1a;在本节中&#xff0c;你将学会如何使用 OpenAI 提供的多模态接口&#xff08;图像生成、语音转录等&#xff09;开发更…...

《qt easy3d中添加孔洞填充》

《qt easy3d中添加孔洞填充》 效果展示一、创建流程二、核心代码效果展示 参考链接Easy3D开发——点云孔洞填充 一、创建流程 创建动作,并转到槽函数,并将动作放置菜单栏,可以参考前文 其中,槽函数on_actionHoleFill_triggered实现如下:...

windows蓝牙驱动开发-蓝牙常见问题解答

Windows 可以支持多少个蓝牙无线电&#xff1f; Windows 中的蓝牙堆栈仅支持一个蓝牙无线电。 此无线电必须符合蓝牙规范和最新的 Windows 硬件认证计划要求。 蓝牙和 Wi-Fi 无线电如何有效共存&#xff1f; 蓝牙和 Wi-Fi 无线电都在 2.4 GHz 频率范围内运行&#xff0c;因此…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_ssl_version 函数

定义 event\ngx_event_openssl.h 中&#xff1a; #if (OPENSSL_VERSION_NUMBER > 0x10100001L)#define ngx_ssl_version() OpenSSL_version(OPENSSL_VERSION)#else#define ngx_ssl_version() SSLeay_version(SSLEAY_VERSION)#endif #if (OPENSSL_VERSION_NUMBER…...

提示工程:少样本提示(Few-shot Prompting)

少样本提示&#xff08;Few-shot Prompting&#xff09;是一种利用大语言模型从少量示例样本中学习并处理任务的方法。它的核心思想是利用大语言模型的上下文学习能力&#xff0c;通过在提示中增加“示例样本”来启发大语言模型达到举一反三的效果。这种方法避免了重新训练或者…...

从量化投资到AI大模型:DeepSeek创始人梁文锋的创新之路

一、学术的启蒙:学霸的崭露头角 梁文锋的成长故事始于1985年,他出生在广东省湛江市的一个普通家庭。从小,梁文锋就展现出对知识的强烈渴望和非凡的学习能力,尤其在数学领域,他总是能够轻松解决复杂的难题,成为学校里备受瞩目的“学霸”。 2002年,年仅17岁的梁文锋以吴川…...

基于lstm+gru+transformer的电池寿命预测健康状态预测-完整数据代码

项目视频讲解: 毕业设计:基于lstm+gru+transformer的电池寿命预测 健康状态预测_哔哩哔哩_bilibili 数据: 实验结果:...

物品匹配问题-25寒假牛客C

登录—专业IT笔试面试备考平台_牛客网 这道题看似是在考察位运算,实则考察的是n个物品,每个物品有ai个,最多能够得到多少个物品的配对.观察题目可以得到,只有100,111,010,001(第一位是ci,第二位是ai,第三位是bi)需要进行操作,其它都是已经满足条件的对,可以假设对其中两个不同…...

Pyecharts系列课程05——散点图(Scatter)

本章我们学习Pyecharts中散点图的实现方法&#xff0c;散点图通常用于观察数据的分布和相关性。 1. 基础使用 散点图也是数据直角坐标系&#xff0c;与我们之前的直方图、折线图的基本用法是一致的。 示例&#xff1a; from pyecharts.charts import Scatterx_data [1, 2, …...

c/c++蓝桥杯经典编程题100道(18)括号匹配

括号匹配 ->返回c/c蓝桥杯经典编程题100道-目录 目录 括号匹配 一、题型解释 二、例题问题描述 三、C语言实现 解法1&#xff1a;栈匹配法&#xff08;难度★&#xff09; 解法2&#xff1a;计数器法&#xff08;仅限单一括号类型&#xff0c;难度★☆&#xff09; …...

C++病毒

免费版请关注作者&#xff0c;私信 第一期 声明&#xff1a; 仅供损害电脑&#xff0c;不得用于非法。 直接上代码 #include <bits/stdc.h> #include <windows.h> using namespace std; HHOOK g_hHook; LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LP…...

vue学习4

1.自定义创建项目 2.ESlint代码规范 正规的团队需要统一的编码风格 JavaScript Standard Style 规范说明&#xff1a;https://standardjs.com/rules-zhcn.html 规则中的一部分&#xff1a; (1)字符串使用单引号 ‘aabc’ (2)无分号 const name ‘zs’ (3)关键字后加空格 if(n…...

解锁 DeepSeek 模型高效部署密码:蓝耘平台深度剖析与实战应用

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

《DEADiff:一种具有解耦表示高效的风格化扩散模型》

paper&#xff1a;2403.06951 GitHub&#xff1a;bytedance/DEADiff: [CVPR 2024] Official implementation of "DEADiff: An Efficient Stylization Diffusion Model with Disentangled Representations" 目录 摘要 1、介绍 2、相关工作 2.1 扩散模型在文本到…...

webpack系统学习

webpack4和webpack5区别1---loader_webpack4与webpack5处理图片的不同-CSDN博客 webpack4和webpack5区别2---代码压缩_webpack4如何使用terser-CSDN博客 webpack4和webpack5区别3---缓存_cacheprune-CSDN博客 webpack4和webpack5区别4---自动清除打包目录_webpack4打包目录清…...

C++11新特性之unique_ptr智能指针

本节继续介绍智能指针&#xff0c;不了解的读者可以先阅读——C11新特性之shared_ptr智能指针-CSDN博客 1.介绍 unique_ptr是C11标准提供的另一种智能指针。与shared_ptr不同的是&#xff0c;unique_ptr指针指向的堆内存无法同其他unique_ptr共享&#xff0c;也就是每一片堆内…...

如何使用python制作一个天气预报系统

制作一个天气预报系统可以通过调用天气 API 来获取实时天气数据,并使用 Python 处理和展示这些数据。以下是一个完整的指南,包括代码实现和注意事项。 1. 选择天气 API 首先,需要选择一个提供天气数据的 API。常见的天气 API 有: OpenWeatherMap API:提供全球范围内的天…...

保姆级教程Docker部署Zookeeper模式的Kafka镜像

目录 一、安装Docker及可视化工具 二、Docker部署Zookeeper 三、单节点部署 1、创建挂载目录 2、运行Kafka容器 3、Compose运行Kafka容器 4、查看Kafka运行状态 5、验证生产消费 四、部署可视化工具 1、创建挂载目录 2、Compose运行Kafka-eagle容器 3、查看Kafka-e…...

在阿里云ECS上一键部署DeepSeek-R1

DeepSeek-R1 是一款开源模型&#xff0c;也提供了 API(接口)调用方式。据 DeepSeek介绍&#xff0c;DeepSeek-R1 后训练阶段大规模使用了强化学习技术&#xff0c;在只有极少标注数据的情况下提升了模型推理能力&#xff0c;该模型性能对标 OpenAl o1 正式版。DeepSeek-R1 推出…...