1

我正在做一个望远镜项目,我们正在测试 CCD。每当我们拍照时,事物都会略带粉红色,我们需要真实的色彩来正确成像银河物体。我打算在 python 或 java 中编写一个小程序来更改颜色权重,但是如何访问原始数据文件(它是 rgb.bin)中颜色的权重?

我们正在使用拜耳矩阵算法将单色文件转换为彩色文件,我想问题来自那里,但我想用一个小的颜色校正程序来解决它。

谢谢!

4

4 回答 4

3

典型的白平衡问题是由照明场景的光线构成中的红、绿和蓝比例不同或传感器对这些颜色的敏感度不同引起的。这些误差通常是线性的,因此您可以通过乘以误差的倒数来校正它们。

假设您测量一个您期望完全为白色的点,其 RGB 值为 (248,237,236),即粉红色。如果将图像中的每个像素乘以 (248/248,248/237,248/236),您最终将获得正确的平衡。

您绝对应该确保您的拜耳过滤器首先产生正确的结果,否则线性误差的基本假设将不正确。

于 2012-05-29T22:10:57.517 回答
1

Java中有一些对图像处理有用的东西,尝试使用BufferedImage该类,这里我给你一个Javadoc的链接,你可以打开常见格式的图像并使用它BufferedImage来访问每个像素的颜色或灰度。

缓冲图像

我不知道蟒蛇。

希望这可以帮助!

于 2012-05-29T19:34:41.600 回答
1

您可能想查看Python 图像库 (PIL)。我将让您以各种格式加载图像并访问其颜色值。

我不熟悉rgb.bin图像格式,但如果“权重”意味着简单地调整各种 RGB 类型值,那么 PIL 可能值得研究(PIL 文档 pdf

请注意,PIL 官方支持最多 Python v2.7(欢迎页面显示为 v2.6,但实际上是 v2.7 - 请参阅下载页面),但是 Python v3 有一个非官方版本的 PIL .x 可从 Unofficial Windows Binaries for Python Extension Packages站点获得。

于 2012-05-29T19:39:54.793 回答
1

如果您的图像出现偏色(粉红色),摄影师修复它的方法是调整图像的白平衡。

这里有一个很好的讨论实现自动白平衡校正算法:白平衡算法

由于您已经生成了一个包含二进制 RGB 值的文件,因此我假设您能够将其重新解析为数据结构以进行进一步处理。将 RGB 像素放入缓冲区后,您将希望将它们转换为等效的 HSB(色调、饱和度、亮度),因为更改图像的色调本质上是对每个像素色调的全局操作。Java Color类包含用于执行 HSB<->RGB 转换的方法。

于 2012-05-29T20:56:54.237 回答