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

颜色的基本处理

       数码相机能够获取彩色图像,但相机的色彩处理是一个非常复杂的过程,是非常重要的。

       此过程生产制造商在细节方面都是不公布的,但是基本的概念是相同的。当相机捕捉一个真实场景时,是怎么还原成人眼所看到的图像呢?

1.RAW----相机获取到的原始图像

       绝大多数的彩色图像传感器使用Bayer模式,Bayer模式颜色传感器是采用红、绿、蓝滤光片。所以每个像素是能够探测到一种颜色,它“看到”的是红色、绿色或蓝色。因为绿色是亮度信息中最重要的颜色, 所有我们对于绿色采用两个像素,蓝色一个,红色一个。

 图1:传感器信号不包含颜色信息,每个像素代表一种颜色。

图2 :上图的细节。每个像素只检测一个颜色。图片仍然是“马赛克”

2.去马赛克

       为了得到每个像素的红色,绿色和蓝色的信息,去马赛克的重要步骤是对丢失的信息进行插值。这关系着图像的质量。因此很多厂商是不会透露在细节上做了什么。不同的滤光片导致对光的灵敏度不同且信号强度较低,因此噪声级别可能会非常不同。在去马赛克的处理过程中,噪声是通过相邻元素之间扩散,不同的颜色通道中噪声是相互关联的。

图3 :一个像素的信息用于相邻像素的颜色信息

图4 :经过去马赛克处理,每个像素都有了一个红、绿、蓝的值,所以原图会变成彩色图片

3.白平衡

       在数码相机中,不同颜色通道的灵敏度是不同的。为了获取符合人眼视觉的正确颜色,相机以不同方式控制不同通道的增益。经过白平衡处理后,图像中的中性区域显现中性,并且数值和红色,绿色及蓝色几乎相同。

图5:调整所有的通道的增益后,图像显现中性

4.颜色校正矩阵(CCM)

       每个相机都有各自的光谱灵敏度。所以每个相机都具有特定的RGB输出。要获得所有相机一致的结果,必须将相机的RGB转换为标准已知的色彩空间,在大多数情况下是sRGB,但可以是任意其它的色彩空间。要把值从RGB_camera转换到sRGB,必须对数据添加一个3 x3的颜色校正矩阵(CCM)。

图6:当CCM矩阵应用后,颜色被转换为已知定义的色彩空间(sRGB)

5.Gamma

       不管图像中是在暗区检查和亮区检查,到目前步骤为止,图像的数据依然是线性的。因此将光强加倍会使图像中的数值加倍。在输出设备中为了得到正确的表现方式,图像通常会应用Gamma功能。这个曲线被用在图像处理的最后阶段,因为从现在起图像的数据就是非线性的,开始接近于人眼所看到的的图像画面。

 

图7:完成后,把RAW图片转换成sRGB图片

相关文章:

颜色的基本处理

数码相机能够获取彩色图像,但相机的色彩处理是一个非常复杂的过程,是非常重要的。 此过程生产制造商在细节方面都是不公布的,但是基本的概念是相同的。当相机捕捉一个真实场景时,是怎么还原成人眼所看到的图像呢? 1.R…...

跟李笑来学美式俚语(Most Common American Idioms): Part 66

Most Common American Idioms: Part 66 前言 本文是学习李笑来的Most Common American Idioms这本书的学习笔记,自用。 Github仓库链接:https://github.com/xiaolai/most-common-american-idioms 使用方法: 直接下载下来(或者clone到本地…...

爬虫技术简介

1、爬虫简介 爬虫(Web crawler)是一种用于自动获取网页内容的程序。它可以通过模拟浏览器访问网页,并从中提取所需的信息,如文本、图片、链接等。爬虫在互联网上进行广泛应用,用于搜索引擎的网页抓取、数据挖掘、信息收集、内容监测等领域。 2、爬虫分类 爬虫的分类有以…...

如何打开Windows10的设备管理器

如何打开Windows10的设备管理器? 01 02...

scala列表

1 不可变 List 说明 (1)List 默认为不可变集合 (2)创建一个 List(数据有顺序,可重复) (3)遍历 List (4)List 增加数据 (5&#…...

c++检查某一文件是否存在

C17及以上版本,检查文件是否存在可以使用filesystem库 如果使用的是C11或C14,标准库并没有直接提供这样的功能。 可以使用平台特定的API,例如在Windows上使用 _access 函数,或在POSIX兼容系统(如Linux和macOS&#x…...

Scala的隐式类,隐式参数和值,隐式对象

1.Scala的隐式类定义语法:implicit class 类名(参数){ } 隐式类中参数只能定义一个,参数中的源类型与目标类型一一对应,只能从一种类型转换成另一种类型,不可以一对多或多对。 //隐式类:implicit class隐式转换函…...

LabVIEW实现HTTP通信

目录 1、HTTP通信原理 2、硬件环境部署 3、云端环境部署 4、HTTP通信函数 5、程序架构 6、前面板设计 7、程序框图设计 本专栏以LabVIEW为开发平台,讲解物联网通信组网原理与开发方法,覆盖RS232、TCP、MQTT、蓝牙、Wi-Fi、NB-IoT等协议。 结合实际案例,展示如何利用LabVIEW和…...

【EXCEL】 获取多列中 不为空的那一个数据

从多个表格筛选出来的上班时间是下表这样的 我要把他们放在同一列,这样方便后续处理,合并列输入下面这个公式即可 日期不加 TEXT() 函数 转日期格式;将得到是一串数字 TEXT(TEXTJOIN(", ",TRUE,B2:F2),&qu…...

VBA API 概述 | 宏编程

注:本文为 “VBA API 概述 | 宏编程 | 执行速度慢” 相关文章合辑。 VBA API 详解 Office 二次开发于 2020-12-17 22:27:10 发布 Office 版本变动 在 Office 2010 之前,微软仅提供 32-bit 版本的 Office。而自 Office 2010 起,出现了 32-b…...

pythonOpenCV篇:0基础带你python入门之常用函数

① 二值化函数 功能:将图像转换为二值图像(黑白图像),将像素值分为两种类别:前景(白)和背景(黑)。函数:cv2.threshold()参数: src:输…...

第十七届山东省职业院校技能大赛 中职组“网络安全”赛项资源任务书样题③

第十七届山东省职业院校技能大赛 中职组“网络安全”赛项资源任务书样题③ 模块A 基础设施设置与安全加固(200分)A-1 登录安全加固(Windows, Linux)A-2 Nginx安全策略(Linux)A-3日志监控(Windows)A-4中间件…...

【每日一题 基础题】验证回文串

LCR 018. 验证回文串 验证回文串 给定一个字符串 s ,验证 s 是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 本题中,将空字符串定义为有效的回文串 。 验证回文串 LCR 018. 验证回文串方法一:**筛选 判断…...

【Hadoop】-- hadoop3.x default port

Hadoop 3.x 修改了一些以前常用的默认端口,完整的默认端口列表,可点击下面配置文件获取信息: core-default.xmlhdfs-default.xmlhdfs-rbf-default.xmlyarn-default.xml...

SQL Server:只有MDF文件,如何附加数据库

第一步:先新建一个同名数据库,然后停止sql服务,删除新建数据库.ldf文件。 第二步:将要附加的数据库的.mdf文件覆盖刚新建的.mdf文件,并重启sql服务。 第三步:这时数据库DATA目录下只有一个.mdf文件&#xf…...

深入理解代理模式(Proxy):静态代理、动态代理与AOP

目录 1. 代理模式简介2. 静态代理3. 动态代理 3.1 JDK动态代理3.2 CGLIB动态代理 4. 面向切面编程(AOP)5. 实战示例6. 总结与最佳实践 1. 代理模式简介 代理模式是一种结构型设计模式,它允许我们提供一个代理来控制对其他对象的访问。代理模式在不改变原始类代码…...

项目中如何选择JVM垃圾回收器?

大家好,我是锋哥。今天分享关于【项目中如何选择JVM垃圾回收器?】面试题。希望对大家有帮助; 项目中如何选择JVM垃圾回收器? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在一个项目中选择合适的 JVM 垃圾回收器 (Garbage Collector, GC…...

如何借助5G网关实现油罐车安全在线监测

油罐车是常见的特种运输车辆,用以运送各种汽油、柴油、原油等油品,运输危险系数大,而且由于油罐车需要经常行驶在城区道路,为城市各个加油站点、企业工厂运输补充所需油料,因此也是危化品运输车辆的重点监测和管控对象…...

Edge SCDN的独特优势有哪些?

强大的边缘计算能力 Edge SCDN(边缘安全加速)是酷盾安全推出的边缘集分布式 DDoS 防护、CC 防护、WAF 防护、BOT 行为分析为一体的安全加速解决方案。通过边缘缓存技术,智能调度使用户就近获取所需内容,为用户提供稳定快速的访问…...

在Goland中对goroutine协程断点调试

在Goland中对goroutine协程断点调试 环境: Goland 参考了 chatgpt 的回复 进行断点调试的代码 package mainimport ("fmt""sync""time" )// worker 模拟处理任务 func worker(id int, wg *sync.WaitGroup) {defer wg.Done() // 确保任务完成后…...

LFM2.5-1.2B-Thinking-GGUF应用场景:智能硬件说明书问答机器人落地实践

LFM2.5-1.2B-Thinking-GGUF应用场景:智能硬件说明书问答机器人落地实践 1. 项目背景与需求 在智能硬件领域,产品说明书往往存在以下痛点: 内容专业术语多,普通用户难以理解纸质说明书查找信息效率低不同型号产品差异导致用户混…...

2026年小红书文案降AI工具怎么选?自媒体人亲测这4款最靠谱

开始做小红书内容之前,我以为降AI只是学生的事。后来才发现,品牌方审稿也在查AI率,小红书平台自己也有AI检测机制。 自媒体文案的降AI需求和论文不一样,核心要求是:保留口语化语感,不能变成学术腔。降完还…...

【算法对抗】打穿查重黑盒!论文降AI太难?8个实测有效策略与高性价比工具

上周匆匆写完论文初稿交给导师,结果被一眼识破,当场打回。还被导师认为不认真不负责态度不端正! 为了搞定这件事,我测评了市面上大部分的主流工具、试了无数方法,终于把AI率降到6%。 我们要先端正态度:论文…...

OpenClaw+Qwen3-32B科研助手:文献综述自动生成与参考文献整理

OpenClawQwen3-32B科研助手:文献综述自动生成与参考文献整理 1. 为什么需要AI科研助手? 作为一名计算机专业的研究生,我每天要处理大量文献。最痛苦的时刻莫过于导师突然说"下周组会做个文献综述",而我手头只有几十篇…...

新手避坑指南:用Prometheus+PX4+ROS在Gazebo里复现无人机追踪小车(保姆级流程)

新手避坑指南:用PrometheusPX4ROS在Gazebo里复现无人机追踪小车(保姆级流程) 当第一次接触无人机仿真开发时,很多人会被复杂的工具链和晦涩的错误信息劝退。本文将手把手带你完成从零搭建仿真环境到实现视觉追踪的全过程&#xff…...

# 发散创新:边缘容器中的轻量级服务部署实战与优化策略在云计算向边缘计算演进的浪潮中,**边缘容器技术**正成

发散创新:边缘容器中的轻量级服务部署实战与优化策略 在云计算向边缘计算演进的浪潮中,边缘容器技术正成为构建低延迟、高可用应用的核心基础设施。相比传统云端Kubernetes集群,边缘容器更强调资源受限环境下的高效调度、快速启动和故障自愈能…...

三步掌握BepInEx插件框架:零基础也能懂的Unity游戏扩展指南

三步掌握BepInEx插件框架:零基础也能懂的Unity游戏扩展指南 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx作为Unity/XNA游戏的插件框架,为开发者和…...

【SOC】Fastboot /DFU 烧录镜像

uboot下 使用fastboot 进行 UFS/EMMC/nand 设备烧录的大致流程: board 进入 uboot(支持 fastboot); 同时host机器安装上 fastboot 客户端 ; 2者(board与host)之间通过usb线连接,通过fastboot 协议进行交互…...

AutoGen多智能体框架实战指南:从环境搭建到业务落地

AutoGen多智能体框架实战指南:从环境搭建到业务落地 【免费下载链接】autogen 启用下一代大型语言模型应用 项目地址: https://gitcode.com/GitHub_Trending/au/autogen 在人工智能快速发展的今天,构建能够模拟人类协作模式的智能系统已成为技术突…...

多模态扩展:OpenClaw+GLM-4.7-Flash处理图片信息

多模态扩展:OpenClawGLM-4.7-Flash处理图片信息 1. 为什么需要多模态能力 上周我在整理产品截图时遇到一个典型问题:需要从200多张UI截图中提取所有按钮文字和位置信息。手动操作不仅耗时,还容易遗漏细节。这让我开始思考——能否让OpenCla…...