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

ISP算法之BNR降噪(Bayer域)

概述

BNR(Bayer Noise Reduction)即Bayer域降噪算法。对于噪声的分类如下表所示:

高斯噪声( Gaussian)

高斯噪声也被称为热噪声,通常是由于电路系统中自由电子的热运动,这种噪声幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的。

散粒噪声

量子涨落现象,​ 量子涨落也是一种涨落,也就是对平均值的偏差,当然这是发生在量子世界的。在量子力学中,一个粒子出现的位置是不确定的,通常是通过一个概率去描述,在量子力学中成为波函数。简单总结一下就是一个粒子(这里我们考虑的是光子)会出现的位置是不确定的,是通过概率,即波函数去描述的,正因为是概率性的事件,所以会产生一定的涨落。该种噪声服从泊松分布(其均值与方差均相同)。

椒盐噪声

椒盐噪声(salt-and-pepper noise)又称脉冲噪声,它随机改变一些像素值,在图像中表现为离散的亮点或暗点。类似于动态坏点。

量化噪声

数字系统对模拟信号进行采样时,由于采样精度不足导致的一种失真形式。在图像中表现为明显的台阶效应,通过增大量化Bit位可以解决部分问题.

固定模式噪声(FPN)

固定模式噪声(Fixed Pattern Noise),通常是由于CMOS Sensor的质量不行,导致图像中出现周期性的竖条纹或横条纹。例如下列OV6946摄像头,在遮黑时出现的明暗交替竖条纹。

降噪是图像处理算法中很大一个板块。本章只讨论对于ISP中的一些基本降噪算法,在ISP Pipeline中降噪分为Bayer域、RGB域、和YUV域的算法。RAW图像是CMOS Sensor输出的最原始数据,一般在降噪前会进行坏点校正DPC、黑电平校正BLC、镜头阴影校正LSC,RAW图像保留了最原始的细节和纹理特征,降噪时需要考虑降噪效果,也要考虑对细节的保留,强度不能太大。RGB域进行降噪的原因是,在RGB域中的一些算法,如图像增强、锐化、ToneMapping等非线性算法在增强图像的同时也会增强噪声,所以在RGB域也需要设置降噪算法来处理这些情况。而在YUV域中亮度和色度通道分开了,可以很方便的处理明暗噪声和伪彩噪声,因此在YUV域中有时候也会添加相关降噪算法。

ISP PIpeline是一个非常系统的框架,单个算法性能好不一定整个系统出图效果好,需要各个模块之间的紧密配合,相关参数也需要合理设置才会达到最好的效果。

降噪算法的分类

空域降噪

此种方法是一种2D方法,通常做法是创建一个加权卷积核模板,然后与该像素的邻域区域进行卷积加权,得出一个平滑后的值,比如高斯降噪模板。该类算法容易导致的问题是图像模糊,一方面是邻域窗口的大小,另一方面是对于边缘像素的处理,这些都是要考虑的问题。

核心思想就是:平均(加权)一些相似的像素,去得到噪声更小的像素值。 大部分空域降噪解决的问题都是: 怎么计算两个像素的相似性权重。

一般的空域降噪算法有:

均值滤波(盒式滤波)、高斯滤波、中值滤波,这些算法最大的问题是对于边缘的模糊问题。、

高斯滤波的基本原理是,在处理当前像素的过程中会用到当前像素附近的像素做加权平均,权重取决于当前像素和周围像素的距离,距离越远则权重越小。

常见的保边算法有:

双边滤波(Bilateral Filter)、非局部均值滤波(NLM)、导向滤波(guided filter)等。

双边滤波是在高斯滤波原理的基础上做了扩展,它除了考虑像素距离之外,还考虑当前像素和周围像素亮度的差异,对距离近但颜色差异大的像素会分配小的权重,这样就实现了边缘保持。(一般大边缘保留住了,但是小细节被抹平了,对于绒毛类细节会被抹平)

可以参考经典论文:Bilateral Filtering for Gray and Color Images

非局部算法思想: 根据图像块的相似性来计算像素的相似性权重。非局部并不是指的图像块加权求和,而是指的是求得权重时采用图像块。

该算法需要计算图像中所有像素与当前像素之间的相似性,考虑到这个计算量与效 率的问题,一般会设定两个固定大小的窗口,一个大的搜索窗口(D×D)和一个小的邻域 窗口(d×d),邻域窗口在搜索窗口中进行滑动,根据邻域间的相似性来确定对应中心像素对当前像素的影响度,也就是权值。

大窗口是以目标像素为中心的搜索窗口,两个灰色小窗口分别是以 x,y 为中心的邻域窗口。其中以 y 为中心的邻域窗口在搜索窗口中滑动,通过计算两个邻域窗口间的相似程度为 y 赋以权值𝑤(𝑥, 𝑦) 。假设含噪声的图像为𝜈,去噪后的图像为𝑢,𝑢中 x 点处的像素灰度值计算如下:

其中权值𝑤(𝑥, 𝑦)表示像素点 x 和 y 之间的相似度,值由以 x、y 为中心的矩形邻域 𝑉(𝑥)和𝑉(𝑦)的几何距离决定,计算公式如下所示:

𝑍(𝑥)为权重归一化系数;𝑆d为小搜索窗区域;ℎ为平滑参数,控制高斯函数的衰减程 度,ℎ越大,高斯函数变化越平缓,去噪水平越高,但同时也会导致图像越模糊,ℎ越小, 边缘细节保持的更多,但会残留过多的噪点,降噪效果相对不错。

频域降噪

频域降噪的核心思想是利用信号在空间上的连续性,将图像信号变换到频率域,在频率域将信号和噪声分开,进而对信号降噪,处理后再转回空域,流程如下:

常见的图像变换频域有:傅里叶变换、小波变换、离散余弦DCT变换

对于数字图像 f(x,y),其二维离散傅立叶变换公式如下:

反变换公式为:

该部分可以参考冈萨雷斯的数字图像处理相关章节,个人觉得受益匪浅。

3D降噪(时域降噪)

核心思想是将多帧噪声图像通过融合降噪算法合成一张去噪图像,一种最简单的实现方法是时域均值滤波,即将相邻几帧图像做加权平均。

此种方式产生的最大问题是运动伪影,由于图像帧之间不是同时采集的,在拍摄动态场景和物体时候,帧时间差内画面部分已经发生改变,此时简单加权平均法就会导致运动物体出现伪影,如下图所示,所以该类方法通常都会与运动补偿算法进行结合。

还有一种情况是即使拍摄静态场景,由于手部抖动也会导致图像对应点没有对齐,强行融合会导致画面在边缘出现伪影或拖影,解决该问题的算法被称为图像配准对齐。

因此时域3D降噪通常是与运动补偿和图像配准对齐算法结合对图像序列进行融合处理

混合降噪

顾名思义就是混合使用前述的多种算法,例如有一个比较重要的算法是BM3D,虽然带有3D,但其实是空域2D+频域混合的算法,算法思想是首先在空间域中将图像相似度高的2D patch组合成3D group,这一步与Non-local mean的思想是一样的。然后会在变换域中对3D group进行协同变换和滤波,从而增强稀疏表示,其中变换域主要包括三个连续的步骤:各个group的3D变换,变换谱的收缩和逆3D变换。

算法相对还是较为复杂的,可以参考经典论文(论文附有开源代码):

Image denoising by sparse 3D transform-domain collaborative fitering

参考

ISP基础(03):拜尔域去噪BayerNR - ningKing - 博客园

一篇文章看懂散粒噪声 - 知乎

浅谈ISP-图像噪声模型3_isp图像处理raw域降噪-CSDN博客

图像传感器与信号处理——详解图像传感器噪声_图像噪声检测方法和原理-CSDN博客

图像处理之FPN校正 - 淇淇宝贝 - 博客园

图像降噪:频域与混合域去噪 - 知乎

相关文章:

ISP算法之BNR降噪(Bayer域)

概述 BNR(Bayer Noise Reduction)即Bayer域降噪算法。对于噪声的分类如下表所示: 高斯噪声( Gaussian) 高斯噪声也被称为热噪声,通常是由于电路系统中自由电子的热运动,这种噪声幅度分布服从高…...

HBuilder快捷键大全

目录 一、最常用快捷键 二、文件操作快捷键 三、选择操作快捷键 四、插入操作快捷键 五、编辑操作快捷键 六、删除操作快捷键 七、查找操作快捷键 八、标签规范快捷键 八、运行操作快捷键 九、转换操作快捷键 十、跳转操作快捷键 十一、附加功能快捷键 十二、快捷键…...

Diffusion_Policy项目测试报错记录

1、项目连接 paper:2303.04137 (arxiv.org) github: real-stanford/diffusion_policy: [RSS 2023] Diffusion Policy Visuomotor Policy Learning via Action Diffusion (github.com) 2、问题与解决办法 1) 运行 python train.py --..... 显示无法Err…...

Linux内核学习资源

老版本内核源码: https://mirrors.edge.kernel.org/pub/linux/kernel/Historic/old-versions/ 内核源码分析开源项目: https://github.com/ultraji/linux-0.12/tree/master/srchttps://gitee.com/wslyx/linux-0.12https://github.com/0voice/linux_ke…...

NGINX的安装和配置(Linux环境)

目录 NGINX 安装方式1、 离线编译安装2、 在线仓库安装 NGINX 常用命令1、进程管理命令2、信息查看命令 NGINX 配置文件1、进程使用的配置2、配置文件格式3、配置文件层级 NGINX 全局配置1、全局配置常用指令2、连接相关配置 NGINX 配置MIME1、MIME 标准2、types 配置块3、defa…...

Leetcode打卡:考场就坐

执行结果:通过 题目: 855 考场就坐 在考场里,有 n 个座位排成一行,编号为 0 到 n - 1。 当学生进入考场后,他必须坐在离最近的人最远的座位上。如果有多个这样的座位,他会坐在编号最小的座位上。(另外&am…...

STM32——“SPI Flash”

引入 在给单片机写程序的时候,有时会用到显示屏,就拿市面上的0.96寸单色显示器来说,一张全屏的图片就占用8x1281024个字节,即1kb的空间,这对于单片机来说确实有点奢侈,于是我买了一个8Mb的SPI Flash&#x…...

Zookeeper基本命令解析

ZooKeeper -server host:port -client-configuration properties-file cmd args addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVE addauth scheme auth 一、整体命令格式 ZooKeeper -serve…...

React-更新state的数据,dom没有重新渲染

{entourageList.map((person) > (<Row key{person.id}> {/* 使用唯一的 person.id */}<Col span{16}><Row gutter{16}><Col lg{9} md{18} sm{24}><FormItem label{姓名}>{getFieldDecorator(name-${person.id}, {initialValue: person.name,…...

消息队列技术的发展历史

消息队列技术的演进历程宛如一幅波澜壮阔的科技画卷&#xff0c;历经多个标志性阶段&#xff0c;各阶段紧密贴合不同的技术需求与市场风向&#xff0c;下面为您详细道来。 第一阶段&#xff1a;消息中间件的起源&#xff08;1970 年代末期 - 1980 年代中期&#xff09; 在计算…...

20.抽卡只有金,带保底(WPF) C#

这是一个界面应用化后的抽卡&#xff0c;目前只能抽金&#xff0c;只有基础概率加保底概率 适合界面化应用初学者。 这是展示图&#xff1a; 使用的是WPF不是winform&#xff0c;我也是第一次做WPF内容&#xff0c;就可以试一试&#xff0c;代码都在这里了&#xff0c;简单来…...

DALFox-一款XSS自动化扫描工具

声明&#xff01;本文章所有的工具分享仅仅只是供大家学习交流为主&#xff0c;切勿用于非法用途&#xff0c;如有任何触犯法律的行为&#xff0c;均与本人及团队无关&#xff01;&#xff01;&#xff01; 目录标题 一、介绍及使用启动及使用1. 单个扫描2. 多个扫描3. 文件扫描…...

软件测试之压力测试【详解】

压力测试 压力测试是一种软件测试&#xff0c;用于验证软件应用程序的稳定性和可靠性。压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力&#xff0c;并确保软件在危急情况下不会崩溃。它甚至可以测试超出正常工作点的测试&#xff0c;并评估软件在极端…...

电视大全 1.3.8|汇聚多频道资源,秒切换流畅播放

电视大全TV版是一款功能丰富的TV端直播软件&#xff0c;由悠兔电视的同一开发者打造。最新版本更新了更多频道&#xff0c;包括央视、卫视和地方频道等&#xff0c;提供了多线路流畅播放体验&#xff0c;并支持节目回看、线路选择、开机自启等功能。该应用免登录且无购物频道&a…...

MaxKB基于大语言模型和 RAG的开源知识库问答系统的快速部署教程

1 部署要求 1.1 服务器配置 部署服务器要求&#xff1a; 操作系统&#xff1a;Ubuntu 22.04 / CentOS 7.6 64 位系统CPU/内存&#xff1a;4C/8GB 以上磁盘空间&#xff1a;100GB 1.2 端口要求 在线部署MaxKB需要开通的访问端口说明如下&#xff1a; 端口作用说明22SSH安装…...

大恒相机开发(3)—大恒相机工业检测的实际案例

大恒相机工业检测的实际案例 工业检测的实际案例图像采集性能优化技巧工业环境下的稳定性 工业检测的实际案例 以下是一些使用大恒相机进行工业检测的实际案例&#xff1a; 多特征光学成像系统&#xff1a; 在这个案例中&#xff0c;使用大恒相机构建了一个全方位、多特征的图…...

《Java 与 OpenAI 协同:开启智能编程新范式》

在当今科技飞速发展的时代&#xff0c;人工智能已成为推动各领域创新变革的核心力量。OpenAI 作为人工智能领域的领军者&#xff0c;其开发的一系列强大模型&#xff0c;如 GPT 系列&#xff0c;为自然语言处理等诸多任务带来了前所未有的突破。而 Java&#xff0c;作为一种广泛…...

HarmonyOS NEXT 技术实践-基于基础视觉服务的多目标识别

在智能手机、平板和其他智能设备日益智能化的今天&#xff0c;视觉识别技术成为提升用户体验和智能交互的重要手段。HarmonyOS NEXT通过基础视觉服务&#xff08;HMS Core Vision&#xff09;提供了一套强大的视觉识别功能&#xff0c;其中多目标识别作为其关键技术之一&#x…...

MySQL体系架构

MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层。 网络连接层 客户端连接器&#xff08;Connectors&#xff09;&#xff1a;提供与MySQL服务器建立的支持。目前几乎支持所有主 流的服务端编程技术&#xff0c;例如常见的 Java、C、Python、.…...

如何学习Trustzone

阅读官方文档 ARM 官方文档是学习 Trustzone 最权威的资料来源。例如&#xff0c;ARM Architecture Reference Manual 中详细介绍了 Trustzone 的架构原理、寄存器定义和操作模式等内容。这些文档虽然比较复杂&#xff0c;但能够提供最准确的技术细节&#xff0c;适合在学习过…...

【视觉SLAM:Panoptic FPN全景分割网络】

Panoptic FPN是一种全景分割&#xff08;Panoptic Segmentation&#xff09;的经典网络&#xff0c;最早由 Kirillov 等人在 2019 年提出。全景分割是一种统一的视觉任务&#xff0c;结合了实例分割&#xff08;Instance Segmentation&#xff09;和语义分割&#xff08;Semant…...

【Linux】数据呈现

一、数据的输入与输出 1、标准文件描述符 Linux系统会将每个对象都当做文件来处理&#xff0c;包括输入和输出。它用文件描述符来标识每个文件对象。 文件描述符是一个非负整数&#xff0c;唯一会标识的是会话中打开的文件。每个进程一次最多可以打开9个文件描述符。bash sh…...

编译原理期末复习--伪代码部分

1.词法分析 token token nexttoken()c getchar();switch(c):case <:c getchar();switch(c):case : return RE;case >: return NE;default: rollback(); return LT;case :return EQ;case >:c getchar();switch(c):case : return GE;default: rollback(); return GT…...

云原生相关的 Go 语言工程师技术路线(含博客网址导航)

要成为一名云原生相关的 Go 语言工程师&#xff0c;需要在 Go 语言、云原生技术栈以及相关的开发和运维工具上建立扎实的基础。下面是一个前字节员工总结的技术路线规划&#xff1a; 1. 掌握 Go 语言基础 深入理解 Go 语言&#xff1a;你需要熟练掌握 Go 的语法、数据结构、并…...

基于Springboot + vue实现的汽车资讯网站

&#x1f942;(❁◡❁)您的点赞&#x1f44d;➕评论&#x1f4dd;➕收藏⭐是作者创作的最大动力&#x1f91e; &#x1f496;&#x1f4d5;&#x1f389;&#x1f525; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;欢迎留言讨论 &#x1f525;&#x1f525;&…...

【YashanDB知识库】ycm-YashanDB列表有数据库显示故障排除步骤

本文内容来自YashanDB官网&#xff0c;原文内容请见 https://www.yashandb.com/newsinfo/7802959.html?templateId1718516 数据库状态 正常 异常 1、查看告警列表 例如&#xff1a;告警显示实例无法连接&#xff0c;一般是数据库实例服务掉了&#xff0c;需要尽快联系系统…...

如何使用 FastAPI 框架创建 RESTful API ?

FastAPI是一个现代、快速&#xff08;高性能&#xff09;的Web框架&#xff0c;用于构建API&#xff0c;它基于Python 3.6的类型提示功能&#xff0c;可以自动生成交互式API文档&#xff08;使用Swagger UI或ReDoc&#xff09;&#xff0c;并且支持异步编程。 二、创建第一个F…...

Java 继承

继承是所有 OOP 语言和 Java 语言不可缺少的组成部分。 继承是 Java 面向对象编程技术的一块基石&#xff0c;是面向对象的三大特征之一&#xff0c;也是实现软件复用的重要手段&#xff0c;继承可以理解为一个对象从另一个对象获取属性的过程。 如果类 A 是类 B 的父类&…...

嵌入式Linux QT+OpenCV基于人脸识别的考勤系统 项目

此项目是基于人脸识别的考勤系统开发&#xff0c;包括如下模块&#xff1a; 1、人脸识别考勤系统GUI界面设计&#xff0c;包括&#xff1a; &#xff08;1&#xff09;Qt环境(window环境/linux环境) &#xff1b; &#xff08;2&#xff09;Qt工程创建分析&#xff1b; &am…...

门户系统需要压测吗?以及门户系统如何压力测试?

一、门户系统为什么要进行压力测试&#xff1f; 首先一点要明确一下&#xff0c;统一门户上线以后&#xff0c;将是所有应用系统的入口&#xff0c;对应门户稳定性要求较高&#xff0c;门户实现了统一入口和统一认证&#xff0c;系统宕机将影响其他系统使用。一般部署架构要求…...

Linux扩展——shell编程

前置&#xff1a;Linux基础及命令复习 目录 shell概述Shell脚本入门案例 sh bash ./ . source 变量系统预定义变量 $HOME $PWD $SHELL等自定义变量 unset readonly补充&#xff1a;开启子Shell进程的常见方法 (...) $(...) ... <(...) >(...) 特殊变量 $n $# $* $ $&…...

golang, go sum文件保证下载的依赖模块是一致的

在 Go 编程语言中&#xff0c;go.sum 文件是 Go 模块管理的一部分&#xff0c;主要用于记录模块的校验信息&#xff08;模块版本的校验和&#xff09;。它的设计目标是确保模块的完整性和安全性&#xff0c;解决以下关键问题&#xff1a; 1. 确保模块版本的一致性 go.sum 文件…...

TANGO与LabVIEW控制系统集成

TANGO 是一个开源的设备控制和数据采集框架&#xff0c;主要用于管理实验室设备、自动化系统和工业设备。它为不同类型的硬件提供统一的控制接口&#xff0c;并支持设备之间的通信&#xff0c;广泛应用于粒子加速器、同步辐射光源、实验室自动化和工业控制等领域。 1. TANGO的核…...

【day14】异常处理与Object类深入解析

【day13】回顾 在深入探讨异常处理与Object类之前&#xff0c;让我们回顾一下【day13】中的关键内容&#xff1a; 权限修饰符&#xff1a; public&#xff1a;最广的访问范围&#xff0c;任何地方都可以访问。protected&#xff1a;在同包和子类中可以访问。默认&#xff08;无…...

云技术基础知识(二):虚拟化与容器技术

内容预览 ≧∀≦ゞ 虚拟化与容器技术虚拟化技术一、虚拟化的核心概念二、虚拟化的主要类型1. 服务器虚拟化2. 操作系统虚拟化&#xff08;容器化&#xff09;3. 网络虚拟化4. 存储虚拟化 三、虚拟化的实现方法和工具1. 服务器虚拟化实现2. 操作系统虚拟化&#xff08;容器化&am…...

【Java基础面试题033】Java泛型的作用是什么?

Java的基础语法可以看尚硅谷的这个PDF&#xff1a;尚硅谷JavaSE基础/《Java从入门到精通(JDK17版)》_尚硅谷电子书.pdf Autism_Btkrsr/Blog_md_to_pdf - 码云 - 开源中国 (gitee.com) 回答重点 Java泛型的作用是通过在编译时检查类型安全&#xff0c;允许程序员编写更通用和…...

Linux 基本使用和程序部署

1. Linux 环境搭建 1.1 环境搭建方式 主要有 4 种&#xff1a; 直接安装在物理机上。但是Linux桌面使用起来非常不友好&#xff0c;所以不建议。[不推荐]。使用虚拟机软件&#xff0c;将Linux搭建在虚拟机上。但是由于当前的虚拟机软件(如VMWare之类的)存在一些bug&#xff…...

react中使用ResizeObserver来观察元素的size变化

在 React 中使用 ResizeObserver 来观察元素的大小变化&#xff0c;可以通过创建一个自定义 Hook 来封装 ResizeObserver 的逻辑&#xff0c;并在组件中使用这个 Hook。以下是一个完整的示例&#xff0c;展示了如何在 React 中使用 ResizeObserver 来观察元素的大小变化。 自定…...

常见数据结构

1.数组 vector 2.链表 list 双向链表&#xff0c;不能通过下标找元素 3.栈 stack 4.队列 queue 优先队列priority_queue. 默认队头为最大值&#xff0c;可以用来任务调度&#xff0c;图算法&#xff0c;霍夫曼树 5.双端队列 deque 6.集合 set multiset s.begin() //返回…...

【服务器】linux服务器管理员查看用户使用内存情况

【服务器】linux服务器管理员查看用户使用硬盘内存情况 1、查看所有硬盘内存使用情况 df -h2、查看硬盘挂载目录下所有用户内存使用情况 du -sh /public/*3、查看某个用户所有文件夹占用硬盘内存情况 du -sh /public/zhangsan/*...

Java-冒泡排序、选择排序、二分查找算法

1. 冒泡排序 (1) 冒泡排序&#xff1a;每次从数组中找出最大值放在数值的后面去 public static void main(String[] args) {//冒泡排序int[] arr {5, 6 ,4, 9, 3, 1};for (int i 0; i < arr.length - 1; i) {for (int j 0; j < arr.length - i - 1; j) {if (arr[j] &…...

leetcode之hot100---240搜索二维矩阵II(C++)

思路一&#xff1a;通过遍历主对角线上元素判断查找方向 主对角线遍历&#xff1a; 遍历主对角线上的每个元素&#xff08;matrix[i][i]&#xff09;&#xff0c;其中 i 的范围是 [0, min(m, n) - 1]。如果目标值小于当前主对角线元素&#xff0c;说明目标值可能在当前元素的左…...

牛客--求小球落地5次后所经历的路程和第5次反弹的高度,称砝码

求小球落地5次后所经历的路程和第5次反弹的高度 描述 假设有一个小球从 hh 米高度自由落下&#xff0c;我们不考虑真实的物理模型&#xff0c;而是简洁的假定&#xff0c;该小球每次落地后会反弹回原高度的一半&#xff1b;再落下&#xff0c;再反弹&#xff1b;……。 求小球…...

EasyPoi 使用$fe:模板语法生成Word动态行

1 Maven 依赖 <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>4.0.0</version> </dependency> 2 application.yml spring:main:allow-bean-definition-over…...

在 PowerShell 中优雅地显示 Python 虚拟环境

在使用 Python 进行开发时&#xff0c;虚拟环境管理是一个非常重要的部分。无论是使用 venv 还是 conda&#xff0c;我们都希望能够清晰地看到当前所处的虚拟环境。本文将介绍如何在 PowerShell 中配置提示符&#xff0c;使其能够优雅地显示不同类型的 Python 虚拟环境。 问题…...

GUI07-学工具栏,懂MVC

MVC模式&#xff0c;是天底下编写GUI程序最为经典、实效的一种软件架构模式。当一个人学完菜单栏、开始学习工具栏时&#xff0c;就是他的一生中&#xff0c;最适合开始认识 MVC 模式的好时机之一。这节将安排您学习&#xff1a; Model-View-Controller 模式如何创建工具栏以及…...

免费线上签字小程序,开启便捷电子签名

虽如今数字化飞速发展的时代&#xff0c;但线上签名小程序的开发制作却并非易事。需要攻克诸多技术难题&#xff0c;例如确保签名的真实性与唯一性&#xff0c;防止签名被伪造或篡改。 要精准地捕捉用户手写签名的笔迹特征&#xff0c;无论是笔画的粗细、轻重&#xff0c;还是…...

计算机的错误计算(一百八十九)

摘要 用大模型计算 tan(12.345) . 自变量取弧度。结果保留10位有效数字。不同于前面两节的大模型&#xff0c;本节调用了新的两个大模型。然而&#xff0c;很遗憾&#xff0c;它们给出的答案似乎仍然是“匹配”出来的&#xff0c;不是计算出来的。当然&#xff0c;均是错误的。…...

HDR视频技术之十一:HEVCH.265 的 HDR 编码方案

前文我们对 HEVC 的 HDR 编码优化技术做了介绍&#xff0c;侧重编码性能的提升。 本章主要阐述 HEVC 中 HDR/WCG 相关的整体编码方案&#xff0c; 包括不同应用场景下的 HEVC 扩展编码技术。 1 背景 HDR 信号一般意味着使用更多比特&#xff0c;一般的 HDR 信号倾向于使用 10…...

使用 AI 辅助开发一个开源 IP 信息查询工具:一

本文将分享如何借助当下流行的 AI 工具,一步步完成一个开源项目的开发。 写在前面 在写代码时&#xff0c;总是会遇到一些有趣的机缘巧合。前几天&#xff0c;我在翻看自己之前的开源项目时&#xff0c;又看到了 DDNS 相关的讨论。虽然在 2021 年我写过两篇相对详细的教程&am…...