【QT】QPixmap QImage QBitmap QPicture
文章目录
- **1. QPixmap**
- **特点**
- **典型应用场景**
- **示例**
- **2. QImage**
- **特点**
- **典型应用场景**
- **示例**
- **3. QBitmap**
- **特点**
- **示例**
- **4. 三者的主要区别**
- **5. 如何选择?**
- **使用 `QPixmap` 的情况**
- **使用 `QImage` 的情况**
- **使用 `QBitmap` 的情况**
- **6. 相互转换**
- **7. 性能考虑**
- **总结**
- **8. `QPicture`(矢量图形记录与回放)**
- **特点**
- **典型应用场景**
- **示例**
- **9. `QImageReader` 和 `QImageWriter`(高效图像读写)**
- **特点**
- **典型应用场景**
- **示例**
- **10. `QSvgRenderer`(SVG 矢量图形渲染)**
- **特点**
- **典型应用场景**
- **示例**
- **11. `QGraphicsPixmapItem`(图形视图框架中的图像项)**
- **特点**
- **典型应用场景**
- **示例**
- **12. `QOpenGLTexture`(OpenGL 纹理)**
- **特点**
- **典型应用场景**
- **示例**
- **13. `QVideoFrame`(视频帧处理)**
- **特点**
- **典型应用场景**
- **示例**
- **14. `QIcon`(跨平台图标管理)**
- **特点**
- **典型应用场景**
- **示例**
- **总结:如何选择合适的类?**
在Qt中,
QPixmap
、
QImage
和
QBitmap
都是用于处理图像数据的类,但它们有不同的特性和适用场景。以下是它们的区别和典型应用场景:
1. QPixmap
特点
- 设计目的:用于在屏幕上高效显示图像(渲染优化)。
- 存储方式:依赖于底层图形系统(如X11、DirectFB、OpenGL等)。
- 像素访问:通常不能直接访问或修改像素(在某些平台上可以,但不推荐)。
- 线程安全:不是线程安全的,只能在主线程(GUI线程)使用。
- 适用格式:适合显示(如PNG、JPG等),但不适合直接操作像素。
典型应用场景
- 在UI上显示图片(如
QLabel::setPixmap()
)。 - 绘制到
QPainter
(如QPainter::drawPixmap()
)。 - 图标(
QIcon
)和光标(QCursor
)的存储。 - 离屏渲染(如
QPixmap::grabWidget()
,但Qt5后推荐用QWidget::grab()
)。
示例
QPixmap pixmap(":/images/logo.png");
QLabel label;
label.setPixmap(pixmap);
2. QImage
特点
- 设计目的:用于直接访问和修改像素数据(CPU端操作)。
- 存储方式:独立于底层图形系统,纯内存存储。
- 像素访问:可以直接读写像素(
setPixel()
,pixel()
)。 - 线程安全:线程安全,可以在非GUI线程操作(但渲染仍需在主线程)。
- 适用格式:支持多种像素格式(
Format_RGB32
、Format_ARGB32
等)。
典型应用场景
- 图像处理(如滤镜、缩放、旋转、格式转换)。
- 读取/保存图像文件(
QImage::load()
,QImage::save()
)。 - 摄像头帧处理(如
QVideoFrame
转QImage
)。 - OpenCV 和 Qt 结合(
cv::Mat
转QImage
)。
示例
QImage image(":/images/photo.jpg");
image = image.scaled(800, 600, Qt::KeepAspectRatio);
image.setPixel(10, 10, qRgb(255, 0, 0)); // 修改像素
QPixmap pixmap = QPixmap::fromImage(image); // 转QPixmap用于显示
3. QBitmap
特点
- 设计目的:单色(1-bit)图像,用于掩码(mask)或黑白图像。
- 继承自
QPixmap
,但只支持Format_Mono
或Format_MonoLSB
。 - 典型用途:
- 窗口遮罩(
QWidget::setMask()
)。 - 自定义光标(
QCursor
)。 - 黑白图标或图案。
- 窗口遮罩(
示例
QBitmap mask(100, 100);
mask.fill(Qt::color0); // 透明
QPainter painter(&mask);
painter.fillRect(20, 20, 60, 60, Qt::color1); // 不透明部分
widget->setMask(mask); // 设置窗口遮罩
4. 三者的主要区别
特性 | QPixmap | QImage | QBitmap |
---|---|---|---|
设计用途 | 屏幕渲染 | 像素操作 | 单色掩码 |
存储位置 | 可能存储在GPU | 存储在CPU内存 | 存储在GPU |
像素访问 | 不支持(或受限) | 支持(pixel() ) | 不支持 |
线程安全 | 仅主线程 | 线程安全 | 仅主线程 |
适用场景 | UI显示、绘制 | 图像处理、修改 | 遮罩、黑白图像 |
5. 如何选择?
使用 QPixmap
的情况
- 需要在
QLabel
、QPushButton
或其他UI组件上显示图片。 - 使用
QPainter
进行高效绘制(如游戏、图表渲染)。 - 需要硬件加速的图形操作。
使用 QImage
的情况
- 需要直接修改像素(如滤镜、缩放、旋转)。
- 从摄像头或网络接收图像数据并处理。
- 需要跨线程处理图像(如后台图像加载)。
使用 QBitmap
的情况
- 需要创建窗口遮罩(
setMask
)。 - 需要黑白图像或自定义光标。
6. 相互转换
QImage
→QPixmap
(用于显示):QImage image("photo.jpg"); QPixmap pixmap = QPixmap::fromImage(image);
QPixmap
→QImage
(用于像素操作):QPixmap pixmap("icon.png"); QImage image = pixmap.toImage();
QBitmap
是QPixmap
的子类,可以直接用QBitmap::fromImage()
转换:QImage monoImage = image.convertToFormat(QImage::Format_Mono); QBitmap bitmap = QBitmap::fromImage(monoImage);
7. 性能考虑
QPixmap
适合渲染,但不能跨线程。QImage
适合处理,但转换成QPixmap
有开销。- 避免频繁转换,尽量在
QImage
完成处理后再转QPixmap
。
总结
QPixmap
→ UI显示(渲染优化)。QImage
→ 图像处理(像素操作)。QBitmap
→ 单色掩码(遮罩、光标)。
8. QPicture
(矢量图形记录与回放)
特点
- 用于记录和回放
QPainter
命令(如线条、矩形、文本等)。 - 存储的是绘图指令,而不是像素数据,适合矢量图形。
- 可以保存到文件(
.pic
格式)或从文件加载。
典型应用场景
- 需要保存和重放绘图操作(如自定义图表、流程图)。
- 需要缩放无损的图形(因为是矢量格式)。
- 替代
QPixmap
存储非像素图形。
示例
QPicture picture;
QPainter painter;
painter.begin(&picture); // 记录绘图操作
painter.drawEllipse(10, 10, 100, 100);
painter.end();
picture.save("drawing.pic"); // 保存绘图指令// 回放
QPicture loadedPic;
loadedPic.load("drawing.pic");
QPainter painter2(this);
painter2.drawPicture(0, 0, loadedPic); // 重新绘制
9. QImageReader
和 QImageWriter
(高效图像读写)
特点
QImageReader
:优化图像加载(支持渐进式加载、缩放加载)。QImageWriter
:优化图像保存(支持压缩、元数据写入)。- 比直接使用
QImage::load()
/save()
更灵活,支持更多格式控制。
典型应用场景
- 需要按需加载大图(如仅加载缩略图)。
- 需要控制图像保存质量(如 JPEG 压缩级别)。
- 支持动态图像格式(如 GIF、WebP)。
示例
// 渐进式加载图像(适合大图)
QImageReader reader("large_image.jpg");
reader.setScaledSize(QSize(800, 600)); // 直接加载缩小版
QImage image = reader.read();// 高质量保存 JPEG
QImageWriter writer("output.jpg", "jpg");
writer.setQuality(90); // 设置压缩质量
writer.write(image);
10. QSvgRenderer
(SVG 矢量图形渲染)
特点
- 用于渲染 SVG(Scalable Vector Graphics) 文件。
- 支持缩放无损显示,适合高分辨率屏幕。
- 可与
QPainter
结合动态绘制。
典型应用场景
- 显示矢量图标(如 UI 图标、公司 Logo)。
- 需要缩放不变形的图形(如地图、流程图)。
- 替代位图资源,减少内存占用。
示例
QSvgRenderer renderer("icon.svg");
QPainter painter(this);
renderer.render(&painter, QRectF(0, 0, 100, 100)); // 渲染到指定区域
11. QGraphicsPixmapItem
(图形视图框架中的图像项)
特点
- 用于在
QGraphicsScene
中显示QPixmap
。 - 支持平移、旋转、缩放等交互操作。
- 是
QGraphicsItem
的子类,可与其他图形项组合。
典型应用场景
- 在图形视图框架(如地图、画布)中管理图像。
- 需要交互式操作的图像(如拖动、旋转)。
- 游戏开发中的精灵(Sprite)渲染。
示例
QGraphicsScene scene;
QPixmap pixmap("sprite.png");
QGraphicsPixmapItem *item = scene.addPixmap(pixmap);
item->setPos(50, 50);
item->setRotation(45); // 旋转 45 度QGraphicsView view(&scene);
view.show();
12. QOpenGLTexture
(OpenGL 纹理)
特点
- 将图像绑定为 OpenGL 纹理,用于 3D 渲染。
- 支持硬件加速的图像处理(如滤镜、着色器)。
- 需要 Qt 的 OpenGL 模块(
QtOpenGL
)。
典型应用场景
- 3D 图形渲染(如游戏、CAD 软件)。
- GPU 加速的图像处理(如实时滤镜)。
- 与
QOpenGLWidget
结合使用。
示例
QImage image("texture.png");
QOpenGLTexture texture(image);
texture.bind();
// 在 OpenGL 着色器中使用纹理
13. QVideoFrame
(视频帧处理)
特点
- 用于处理摄像头或视频流的帧数据。
- 支持与
QImage
或QPixmap
的转换。 - 通常与
QMediaPlayer
或QCamera
结合使用。
典型应用场景
- 实时视频处理(如人脸检测、AR 应用)。
- 从摄像头捕获帧并显示。
示例
// 从摄像头获取 QVideoFrame 并转为 QImage
QVideoFrame frame = ...; // 从摄像头捕获
frame.map(QAbstractVideoBuffer::ReadOnly);
QImage image(frame.bits(),frame.width(),frame.height(),frame.bytesPerLine(),QImage::Format_ARGB32
);
frame.unmap();// 显示
QPixmap pixmap = QPixmap::fromImage(image);
label.setPixmap(pixmap);
14. QIcon
(跨平台图标管理)
特点
- 封装多种状态的图标(正常、悬停、禁用等)。
- 支持从
QPixmap
、QImage
或文件(.ico
、.png
)创建。 - 自动适配不同设备像素比(High-DPI 屏幕)。
典型应用场景
- 按钮、菜单项的图标。
- 适应不同主题(亮色/暗色)的图标切换。
示例
QIcon icon(":/icons/app.png");
QPushButton button;
button.setIcon(icon);
总结:如何选择合适的类?
类 | 主要用途 | 关键优势 |
---|---|---|
QPixmap | UI 显示、渲染优化 | 硬件加速,适合显示 |
QImage | 像素级操作、图像处理 | 直接访问像素,线程安全 |
QBitmap | 单色掩码、黑白图形 | 轻量级,适合遮罩 |
QPicture | 矢量图形记录与回放 | 存储绘图指令,缩放无损 |
QImageReader | 高效图像加载(如渐进式) | 支持按需解码 |
QSvgRenderer | SVG 矢量图形渲染 | 高分辨率适配 |
QGraphicsPixmapItem | 图形视图框架中的交互式图像 | 支持变换、组合 |
QOpenGLTexture | OpenGL 纹理绑定 | GPU 加速渲染 |
QVideoFrame | 视频帧处理 | 与摄像头/视频流交互 |
QIcon | 跨平台图标管理 | 支持多状态、High-DPI 适配 |
根据需求选择最合适的类,可以兼顾性能和功能! 🎨🚀
相关文章:
【QT】QPixmap QImage QBitmap QPicture
文章目录 **1. QPixmap****特点****典型应用场景****示例** **2. QImage****特点****典型应用场景****示例** **3. QBitmap****特点****示例** **4. 三者的主要区别****5. 如何选择?****使用 QPixmap 的情况****使用 QImage 的情况****使用 QBitmap 的情况** **6. 相…...
如何开通google Free Tier长期免费云服务器(1C/1G)
Google宣布的一项政策,为标准层级的网络提供每地域200G的免费流量。两项政策结合,于是便可以得到一台1核心、1G内存、30G磁盘、200G流量的小云服务器,可玩性大大提高。这篇文章就分享一下如何正确开机,避免产生额外的费用。 免费…...
Kaggle房价预测
实战 Kaggle 比赛:预测房价 这里李沐老师讲的比较的细致,我根据提供的代码汇总了一下: import hashlib import os import tarfile import zipfile import requests import numpy as np import pandas as pd import torch from matplotlib i…...
4.7学习总结 java集合进阶
集合进阶 泛型 //没有泛型的时候,集合如何存储数据 //结论: //如果我们没有给集合指定类型,默认认为所有的数据类型都是object类型 //此时可以往集合添加任意的数据类型。 //带来一个坏处:我们在获取数据的时候,无法使用他的特有行为。 //此…...
设计模式 - 代理模式Proxy
设计思想: 举个通俗的例子,你想找某局长帮你做一件事情,但局长官位显赫,你又不能轻易见着,你就想到了找他的秘书,通过她传话给局长,这样你就等于请他的秘书帮你办成了那件事。秘书为什么就可以…...
计算机网络体系结构(一)
1.计算机网络概述 1.1计算机网络的概念 计算机网络是由相互连接的计算机及其周边设备构成的系统,这些计算机和设备通过各种通信介质实现数据和资源的共享。计算机网络的主要目的是为了增强信息传递的效率、便利性和可靠性。以下是一些计算机网络的关键概念…...
数据结构与算法-数学-基础数学2(扩展欧几里得算法,组合数问题)
六:扩展欧几里得算法 同余: 若 a≡b(modm),则 m 整除 a−b,即 abkm(k 为整数)。 扩展欧几里得算法 扩展欧几里得算法可用于求解 axbygcd(a,b) 的一组整数解。 #include <iostream> using namesp…...
【力扣hot100题】(072)柱状图中的最大矩阵
这绝对是我做过印象最深的算法题之一。(还有是那道盛水最多的贪心题) 当初不知道想了多少个日日夜夜,所幸这道题已经深深的烙印在了我的脑海里。 现在看来也没那么可怕()不过初见确实非常难想到单调栈。 方法如下&a…...
T-SQL语言的压力测试
T-SQL语言的压力测试 随着数据驱动技术的发展,数据库在现代应用中的角色愈加重要。而在数据库管理系统中,微软的SQL Server凭借其强大的功能和易用性,广泛应用于各行业。在这一环境中,T-SQL(Transact-SQL)…...
debian 系统gnome怎么关闭触摸屏三指滑动
ubuntu如何限制三指手势操作_ubuntu 手势-CSDN博客 参考方案给上面了, kiosk模式 就是专用模式,类似于广告机、售货机那种。 方案 在 Debian 系统的 GNOME 桌面环境中,可以通过以下方法关闭触摸屏三指滑动功能: 安装 gnome-tweaks 工具:...
【9】搭建k8s集群系列(二进制部署)之安装work-node节点组件(kube-proxy)和网络组件calico
承接上一篇文章,继续安装工作节点的第二个组件:kube-proxy 一、创建配置文件 cat > /opt/kubernetes/cfg/kube-proxy.conf << EOF KUBE_PROXY_OPTS"--logtostderrfalse \\ --v2 \\ --log-dir/opt/kubernetes/logs \\ --config/opt/kubern…...
MongoDB及Yapi迁移数据
一、MongoDB安装及迁移 1、导入MongoDB GPG密钥 sudo rpm --import https://www.mongodb.org/static/pgp/server-5.0.asc 2、创建MongoDB 安装源配置文件 vi /etc/yum.repos.d/mongodb-org-5.0.repo,添加以下内容: [mongodb-org-5.0] nameMongoDB Repo…...
高效解读机器语言,profinet转ethernet ip网关烟草企业自动化升级案例分析
工业通信协议转换在烟草生产线的实践应用 某中型烟草生产企业为提高自动化水平,引进了西门子S7-1500系列PLC控制系统和防爆型科氏力质量流量计。但在系统集成阶段,技术人员发现PLC支持的PROFINET协议与流量计采用的EtherNet/IP协议存在互操作障碍&#x…...
使用Scade实现神经网络算法
在ERTS2022中,ANSYS 发表了使用Scade实现神经网络AI算法的相关工作。论文题目为《Programming Neural Networks Inference in a Safety-Critical Simulation-based Framework》 背景与挑战 神经网络在安全关键系统中的应用:随着嵌入式系统中自主性的引入…...
rom定制系列------小米10pro机型定制解锁固件 原生安卓15批量线刷固件 操作解析与界面预览
注意;固件用于自己机型忘记密码或者手机号注销等出现设备锁 过保修期 售后无视的机型,勿用于非法途径 目前有粉丝联系,自己的机型由于手机号注销导致手机更新系统后出现设备锁界面。另外也没有解锁bl。目前无法使用手机。经过询问是小米10pro机型。根据…...
2023年-全国大学生数学建模竞赛(CUMCM)试题速浏、分类及浅析
2023年-全国大学生数学建模竞赛(CUMCM)试题速浏、分类及浅析 全国大学生数学建模竞赛(China Undergraduate Mathematical Contest in Modeling)是国家教委高教司和中国工业与应用数学学会共同主办的面向全国大学生的群众性科技活动,目的在于激…...
2014年-全国大学生数学建模竞赛(CUMCM)试题速浏、分类及浅析
2014年-全国大学生数学建模竞赛(CUMCM)试题速浏、分类及浅析 全国大学生数学建模竞赛(China Undergraduate Mathematical Contest in Modeling)是国家教委高教司和中国工业与应用数学学会共同主办的面向全国大学生的群众性科技活动,目的在于激励学生学习数学的积极性,提高学…...
【Docker基础】--查阅笔记1
目录 Docker是什么Docker解决什么问题Docker的理念Docker基本组成镜像(image)容器(container)仓库(registry) Docker平台架构Docker基本实现原理 Docker常用命令总结 Docker是什么 Docker解决什么问题 统…...
算法(动态规划)
动态规划 基本思想 将问题分解为相互重叠的子问题 定义子问题:将原问题分解为若干个子问题。确定状态转移方程:找到子问题之间的递推关系。边界条件:确定初始状态的值。递推计算:根据状态转移方程和边界条件逐步计算子问题的解。…...
2025 年前端与后端开发方向的抉择与展望-优雅草卓伊凡
2025 年前端与后端开发方向的抉择与展望-优雅草卓伊凡 在 2025 年这个科技浪潮奔涌的时代,软件开发领域持续变革,前端与后端开发方向的抉择,成为众多从业者和爱好者亟待破解的关键命题。卓伊凡就频繁收到这样的疑问:“2025 年了&…...
指纹浏览器技术架构解析:高并发批量注册业务的工程化实践——基于分布式指纹引擎与防关联策略的深度实现
一、技术背景与行业痛点 在跨境电商、广告投放、问卷调查等场景中,批量注册与多账号矩阵运营已成为刚需。然而,主流平台(如亚马逊、Facebook、Google)的风控系统通过浏览器指纹追踪(Canvas/WebGL/WebRTC等)…...
基于SpringBoot的“智慧医疗采购系统”的设计与实现(源码+数据库+文档+PPT)
基于SpringBoot的“智慧医疗采购系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体结构图 局部E-R图 系统首页界面 系统…...
codeforces B. Large Array and Segments
题目简述: 给定一个长度为n的数组,以及两个整数k和p,该数组可以通过复制在增加长度,可以复制k次,我们最后要找到保证后缀和至少为p的首元结点的数量 思路简述: 找到有多少个完整的原数组n,最…...
VS Code-i18n Ally国际化插件
前言 本文借鉴:i18n Ally 插件帮你轻松搞定国际化需求-按模块划分i18n Ally 是一款 VS Code 插件,它能通过可视 - 掘金本来是没有准备将I18n Ally插件单独写一个博客的,但是了解过后,功能强大,使用方便,解决…...
ResNet改进(21):基于ECA注意力机制的ResNet18网络实现
一、引言 在计算机视觉领域,ResNet(残差网络)一直是图像分类任务中的重要基准模型。今天我们要介绍的是一个改进版的ResNet18网络,它在传统ResNet结构的基础上加入了ECA(Efficient Channel Attention)注意力机制,能够在不显著增加计算量的情况下提升模型性能。 二、网络…...
[ERROR] Some problems were encountered while processing the POMs
记录一次maven的错误 问题复现: 我在ruoyi-vue-plus项目的ruoyi-modules中新建了一个子项目ruoyi-network-telphonem,然后某一次编译的时候提示SysTenantServiceImpl找不到无参的构造函数,检查了很久都没发现问题,于是我想着删掉本地maven仓…...
【网络协议】WebSocket讲解
目录 webSocket简介 连接原理解析: 客户端API 服务端API(java) 实战案例 (1)引入依赖 (2)编写服务端逻辑 (3)注册配置类 (4)前端连接 WebSocket 示例…...
什么是可靠性工程师?
一、什么是可靠性工程师? 可靠性工程师就是负责确保产品在使用过程中不出故障、不给客户添麻烦。 你可以理解为是那种“挑毛病的人”,但不是事后挑,是提前想清楚产品在哪些情况下可能会出问题,然后解决掉。 比如: …...
Next.js + SQLite 项目 Docker 生产环境部署方案
以下是完整的 Next.js SQLite 项目 Docker 生产环境部署方案: 1. 项目结构准备 your-project/ ├── prisma/ │ ├── schema.prisma │ └── migrations/ ├── app/ ├── lib/ ├── Dockerfile ├── docker-compose.yml ├── .dockerignore └…...
记录1---20250407
哈佛结构:指令和数据放在不同的存储器,因为在使用流水线时,方便数据和指令的读取和存入。 冯诺依曼结构:指令和数据放在同一个存储器。 处理器的存储结构:CPU内部采用hierarchy 存储结构,一般由 CPU内部…...
php调用大模型应用接口实现流式输出以及数据过滤
最近开发智能客服,需要用php调用已有的大模型应用接口流式输出vue前端调用打字机效果展示。这里整理了php调用大模型流式输出业务过滤等的核心实现部分,分享给大家。 前置条件:大模型应用接口已经打通(最好是通过postman或者apip…...
数据结构:红黑树
为什么要以这个结构为题?那就要追溯到CSTL库中的两种map/set,分别基于红黑树与哈希表,我是根本分不清楚。为了搞清楚其区别,我会重点聊聊红黑树和哈希表。 当然也会简单介绍一下树的结构。 树 Tree 首先需要简单了解树这个数据结…...
nginx配置ssl证书,实现https安全访问.
前置条件: 名称 ip地址端口号nginx服务器192.168.59.3080/443server服务器190.168.59.318080/8081/8082 安装nginx服务: 参见: 编译安装nginx-CSDN博客 启动后端web服务器192.168.59.31: (#后端要被代理的web服务器要有docker服务并且配置相关的加速服务) 拉取tomcat容器…...
《当区块链穿上防弹衣:落盘加密技术全景拆解》
落盘加密是区块链技术中一项重要的数据安全机制,主要用于保护节点本地存储的敏感数据不被非法访问。本文将全面解析区块链落盘加密的技术原理、实施方法、应用价值,并与其他加密技术进行比较分析。 🔒 落盘加密的技术原理 落盘加密(Disk Encryption)是指对存储在物理磁盘…...
新HTML5
在新HTML5中,DOCTYPE声明以及字符编码声明都非常简单: <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>Document</title> </head> <body>内容 </body> </html>HTM…...
DeepSeek-MLA
MLA 结构 需要缓存 KV 向量共用的压缩隐特征K 向量多头共享的带位置编码的向量 为什么带有位置信息的 Q 向量来自于隐特征向量,而带有位置的 K 向量来自于 H 向量且共享呢? 最好的方法肯定是从H向量直接计算并且不共享,但是会大大增加显存使…...
SQL:数据类型(Data Types)
目录 数字数据类型(Numeric data types) 非数据类型(Non-numeric data types) 日期和时间类型(Date and Time Types) NULL(缺失或未知值) 当你在数据库中创建表格时,你必须指明表中每一列可以保存的数据…...
AF3 OpenFoldBatchCollator类解读
AlphaFold3 data_modules 模块的 OpenFoldBatchCollator 类将一个蛋白质样本列表中的多个字典按键合并,并对每个键值进行 torch.stack 操作,打包成一个批次(batch)。通过定义 OpenFoldBatchCollator类的 __call__ 方法,可以将类的实例当作函数来调用,相当于自定义的批次打…...
手搓多模态-06 数据预处理
前情回顾 我们目前实现了视觉模型的编码器部分,然而,我们所做的是把一张图片编码嵌入成了许多个上下文相关的嵌入向量,然而我们期望的是一张图片用一个向量来表示,从而与文字的向量做点积形成相似度(参考手搓多模态-01…...
[蓝桥杯] 求和
题目链接 P8772 [蓝桥杯 2022 省 A] 求和 - 洛谷 题目理解 这道题就是公式题,我们模拟出公式后,输出最终结果即可。 本题不难,相信很多同学第一次见到这道题都是直接暴力解题。 两个for循环,测试样例,直接拿下。 #in…...
INFINI Labs 产品更新 | Coco AI 0.3 发布 – 新增支持 Widget 外部站点集成
INFINI Labs 产品更新发布!此次更新涵盖 Coco AI 、Easysearch 等产品多项重要升级,重点提升 AI 搜索能力、易用性及企业级优化。 Coco AI v0.3 作为 开源、跨平台的 AI 搜索工具,新增快捷键设置,支持多个聊天会话等功能。Coco A…...
vue3+element-plus多个多选下拉框并搜索
一、下拉框组件: <template> <div class"top-select"> <div class"first-select"> <div v-for"(group, index) in selectGroups" :key"index" class"item-select" > <div class&quo…...
吴恩达深度学习复盘(9)多类分类与SoftMax回归
多类分类 概念 对于分类问题,并非只有0或1两个标签,而是可以有两个以上的开放标签。以手写数字分类问题为例,之前只是区分0和1, 但在实际生活中,如读取信封上的数字或邮政编码,会涉及十个可能的数字识别&…...
【力扣hot100题】(068)有效的括号
犹记得第一次做这题的时候是怎样一番惨状,现在已经得心应手了。 class Solution { public:bool isValid(string s) {stack<char> zhan;for(int i0;i<s.size();i){if(s[i]{||s[i](||s[i][) zhan.push(s[i]);else{if(zhan.empty()) return 0;if(zhan.top(){…...
深度学习篇---Prophet时间序列预测工具
文章目录 前言一、什么是Prophet?易用性自动化灵活性鲁棒性快速拟合 二、Prophet的核心原理1. 趋势模型a. 分段线性模型(默认)b. 逻辑增长模型 2. 季节性模型3. 节假日效应 三、Prophet使用方法安装ProphetPython基本使用示例1. 准备数据2. 创…...
TDengine JAVA 语言连接器
简介 本节简介 TDengine 最重要且使用最多的连接器, 本节内容是以教科书式方式列出对外提供的接口及功能及使用过程中要注意的技术细节,大家可以收藏起来做为今后开发 TDengine 的参考资料。 taos-jdbcdriver 是 TDengine 的官方 Java 语言连接器,Java…...
vue3工程中使用vditor完成markdown渲染并防止xss攻击
vue3工程中使用vditor完成markdown渲染并防止xss攻击 背景环境解决方案引入依赖 组件封装实现效果 背景 做oj系统时,题目使用的时markdown语法字符串,前端查看时需要将markdown转html再渲染到页面上。 环境 vitevue3pnpm 解决方案 引入依赖 pnpm install vdit…...
Java面向对象编程详解
面向对象编程是Java的核心特性之一,它通过类和对象的概念来解决实际问题,使程序设计更加符合人类对事物的认知方式。本文将深入探讨Java中的面向对象编程概念和特性。 1. 面向对象的基本概念 1.1 什么是面向对象? 面向对象程序设计(Object …...
重温java 系列一 Java基础
文件拷贝的5种方式 传统字节拷贝 public static void main(String[] args) throws IOExecption{try(InputStream is new FileInputStream("source.txt");OutputStream os new FileOutputStream("target.txt")){byte[] buffer new byte[1024];int leng…...
Java基础 4.7
1.成员方法传参机制 引用数据类型的传参机制 引用类型传递的是地址(其实也是值,只不过值是地址),可以通过形参影响实参! public class MethodParameter01 {public static void main(String[] args) {int[] arr {1,…...