“标准”RGB 到灰度转换

2024-04-09

我正在尝试编写一个转换器算法,该算法采用 JPEG 图像并返回其 PGM(便携式灰度图)版本。 问题是我无法理解“官方”JPG->PGM 转换器如何从经典 RGB 格式开始为最终像素分配什么值(我猜是 0->255)。

一开始,我使用了这个公式(与OpenCV的CV_RGB2GRAY转换使用的相同):

0.30*R + 0.59*G + 0.11*B = 值

我编写了一个简单的代码来测试我的结果:它采用彩色图像及其 PGM 版本(已使用 GIMP 转换)。然后它使用前面的公式转换彩色图像。目标是获得像素到像素等于 PGM 输入的灰度图像。

此时,它不会返回相同的值。你能帮助我吗?


问题是我无法理解“官方”JPG->PGM 转换器如何从经典 RGB 格式开始为最终像素分配什么值(我猜是 0->255)。

这些“官方”工具使用的转换可能会进行伽玛调整。
那是,它不仅仅是一个线性变换。

有关详细信息,请参阅维基百科部分:将颜色转换为灰度 http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale

I believe you want to use the formula for Csrgb.
Try it out and see if it matches the results you're expecting.

基本上,你会这样做:

  1. Take R, G, B color (each in [0,1] range)
    • 如果它们在范围内0..255相反,只需除以255.0
  2. Compute Clinear = 0.2126 R + 0.7152 G + 0.0722 B
    • 这可能是您之前应用的线性变换
  3. Compute Csrgb according to it's formula, based on Clinear
    • 这是非线性你缺少的伽玛校正件
    • 查看这个 WolframAlpha 图 http://www.wolframalpha.com/input/?i=graph+1.055%2aC%5E%281%2F2.4%29+-+0.055%2C+0+%3C%3D+C+%3C%3D+1
    • Csrgb = 12.92 Clinear when Clinear <= 0.0031308
    • Csrgb = 1.055 Clinear1/2.4 - 0.055 when Clinear > 0.0031308
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“标准”RGB 到灰度转换 的相关文章

  • 如何在 Node.js 中将 HTML 转换为图像

    我需要在 Node 服务器上将 HTML 模板转换为图像 服务器将以字符串形式接收 HTML 我尝试过 PhantomJS 使用一个名为 Webshot 的库 但它不能很好地与 Flex 框和现代 CSS 配合使用 我尝试使用 Chrome
  • 如何使用 Misc.imread 将图像分割为红色、绿色和蓝色通道

    我正在尝试将图像切片为 RGB 但在绘制这些图像时遇到问题 我使用此函数从某个文件夹获取所有图像 def get images path image type image list for filename in glob glob pat
  • Nodejs Base64 中的读取文件

    我正在尝试从客户端读取以 base64 编码的图像 如何使用nodejs进行阅读 My code add to buffer base64 image var encondedImage new Buffer image name base
  • 稀疏矩阵中的最大和子矩形

    求一个子矩形中的最大和NxN矩阵可以完成O n 3 正如其他帖子中指出的 使用 2 d kadane 算法的时间 然而 如果矩阵是稀疏的 具体来说O n 非零条目 可以O n 3 时间被打败了吗 如果有帮助的话 对于我感兴趣的当前应用程序
  • java.sql.SQLException:在结果集开始之前[重复]

    这个问题在这里已经有答案了 我已尝试使用以下代码来检索存储在数据库中的图像 我创建了一个名为image db包含一个名为的表image details 该表有两个字段 id and image path两者都是类型mediumblob 我在
  • Python - 如何将列表保存为图像?

    我生成一个常规列表 是否可以将此列表保存为 JPEG 图像或 PNG 或其他格式 以便我可以打开图像并查看它 我目前正在尝试使用 python 成像库 PIL 来解决这个问题 这是可能的解决方案之一 使用以下方法创建一个空图像对象 Imag
  • CSS 比例和方形中心裁剪图像

    所以我的应用程序中有一个缩略图集合 其大小为200x200 有时原始图像没有这个比例 所以我计划将此图像裁剪为正方形 目前它只是拉伸图像以适合缩略图 所以说我的原始图像大小是400x800 那么图像看起来就很压扁 我想裁剪此图像 以便它查看
  • 如何从二叉搜索树中均匀随机地返回节点?

    给定一个 BST 可能平衡也可能不平衡 如何能够均匀地随机返回 任何 节点 一个限制是您不能使用外部索引数据结构 您必须以每个节点都有平等被访问的机会的方式遍历树 这个问题让我困惑了好一阵子 如果我们确实可以使用外部哈希表 指针 我们可以对
  • 从项目文件加载图像

    我正在尝试获取 png 图像 这是我的资源文件夹 我测试了这里写的解决方案 将图像添加到列表框 c Windows Phone 7 https stackoverflow com questions 9348766 add images t
  • 如何在给定目标索引数组的情况下对数组进行就地排序?

    你如何对给定的数组进行排序arr in place给定目标索引数组ind 例如 var arr A B C D E F var ind 4 0 5 2 1 3 rearrange arr ind console log arr gt B E
  • 如何求解:T(n) = T(n - 1) + n

    我已经解决了以下问题 T n T n 1 n O n 2 现在 当我解决这个问题时 我发现界限非常松散 我是否做错了什么 或者只是这样 您还需要一个递归关系的基本情况 T 1 c T n T n 1 n 为了解决这个问题 您可以首先猜测一个
  • 在 O(n) 时间内找到 n x n 矩阵中的局部最小值

    所以 这不是我的家庭作业问题 而是取自 coursera 算法和数据结构课程的未评分作业 现已完成 You are given an n by n grid of distinct numbers A number is a local m
  • 使用C标准数学库精确计算标准正态分布的CDF

    标准 C 数学库不提供计算标准正态分布 CDF 的函数 normcdf 然而 它确实提供了密切相关的函数 误差函数 erf 和互补误差函数 erfc 计算 CDF 的最快方法通常是通过误差函数 使用预定义常量 M SQRT1 2 来表示 d
  • 从 imread 返回的 ndims

    我正在从文件夹中选取图像 尺寸为128 128 为此 我使用以下代码行 FileName PathName uigetfile jpg Select the Cover Image file fullfile PathName FileNa
  • 使用 scikit-image 和 Transform.PolynomialTransform 进行图像变形

    我附上一个压缩档案 https drive google com file d 0B6EnJ Vh6zs1MkVCRlNhZkJsOEk view usp sharing包含说明和重现问题所需的所有文件 我还没有上传图片的权限 我有一个带有
  • 如何在Google机器学习中将jpeg图像转换为json文件

    我正在研究 Google Cloud ML 我想对 jpeg 图像进行预测 为此 我想使用 gcloud beta ml 预测 instances INSTANCES model MODEL version VERSION https cl
  • 使用主方法求解 T(n) = 2T(n/2) + n/log n 和 T(n) = 4T(n/2) + n/log n 之间的差异

    我最近偶然发现了一个资源 其中 2T n 2 n log ntypeMM 宣布复发无法解决 我接受它作为一个引理 直到今天 另一种资源被证明是矛盾的 在某种意义上 根据资源 下面的链接 其中的 Q7 和 Q18 是建议 分别在问题中的1和2
  • 从剪贴板获取图像 Awt 与 FX

    最近 我们的 Java FX 应用程序无法再从剪贴板读取图像 例如 用户在 Microsofts Paint 中选择图像的一部分并按复制 我不是在谈论复制的图像文件 它们工作得很好 我很确定它过去已经有效 但我仍然需要验证这一点 尽管如此
  • 如何将无向图转换为 DAG?

    The 维基页面 http en wikipedia org wiki Directed acyclic graph Relation to other kinds of graphs says 任何无向图都可以通过为其顶点选择总顺序并将每
  • JS - 如何将图像对象变成灰度并显示它

    基本上 当单击按钮时 它会告诉移动设备转到相机 一旦相机拍照 它就会给我图像数据 它被称为数据 URL 吗 这是我处理它的代码 var imagesrc data image jpeg base64 imageData var myimag

随机推荐