我有以下问题。
导言
我想使用Raspberry Pi相机进行激光束轮廓分析。相机拥有彩色滤光片阵列,这意味着每个像素上方都有红色,绿色或蓝色透射滤光片。它看起来像这样。
对于我使用的波长,蓝色和红色滤光片强烈地衰减了光束,这意味着我最终得到了下面的图案。
它看起来像一个棋盘图案。明亮的像素是绿色滤镜下面的像素。
为了拟合高斯分布(或者以其他方式处理图像),我可以提取绿色像素,但这会导致空间失真。为了解决这个问题,我可以使用每块4个像素的1个像素,但这是不可取的,因为我会失去分辨率。下面是提取蓝色,红色和绿色(红色行)和绿色(蓝色行)通道时的图像。
更普遍的问题是
如果我有一个棋盘图案,我如何使用来自黑色(或白色)像素的数据而不丢失关于它们空间位置的信息?
假设我有一个数组data
,data[1::2, 1::2]
会给予我红色通道。
我的目标(也许有一个替代方案)是得到一个新的数组green_information
,它包含来自两个绿色通道的信息。绿色通道是green_red_row = data[::2, 1::2]
和green_blue_row = data[1::2, ::2]
。
物理学背景之外:
如果我有一个棋盘图案,如何在记住每隔一个像素都是白色的情况下,将高斯拟合到黑色像素的值?如何拟合标准的2D高斯很清楚。
1条答案
按热度按时间o2gm4chl1#
首先,您可能会发现this article很有趣。在这种情况下,去马赛克是您可能需要的通用算法。this document中介绍了一种方法,该方法在填充非绿色像素的绿色值时考虑非绿色像素的亮度,以获得完整的RGB图像。对于红色过滤的像素,该算法将当前的(红色)像素和相邻的红色像素之间的差值,并将得到的差值加到插值的绿色值上。