numpy 将高斯函数拟合到棋盘图案中的黑色像素

l2osamch  于 2023-04-06  发布在  其他
关注(0)|答案(1)|浏览(167)

我有以下问题。

导言

我想使用Raspberry Pi相机进行激光束轮廓分析。相机拥有彩色滤光片阵列,这意味着每个像素上方都有红色,绿色或蓝色透射滤光片。它看起来像这样。

对于我使用的波长,蓝色和红色滤光片强烈地衰减了光束,这意味着我最终得到了下面的图案。

它看起来像一个棋盘图案。明亮的像素是绿色滤镜下面的像素。
为了拟合高斯分布(或者以其他方式处理图像),我可以提取绿色像素,但这会导致空间失真。为了解决这个问题,我可以使用每块4个像素的1个像素,但这是不可取的,因为我会失去分辨率。下面是提取蓝色,红色和绿色(红色行)和绿色(蓝色行)通道时的图像。

更普遍的问题是

如果我有一个棋盘图案,我如何使用来自黑色(或白色)像素的数据而不丢失关于它们空间位置的信息?
假设我有一个数组datadata[1::2, 1::2]会给予我红色通道。
我的目标(也许有一个替代方案)是得到一个新的数组green_information,它包含来自两个绿色通道的信息。绿色通道是green_red_row = data[::2, 1::2]green_blue_row = data[1::2, ::2]

物理学背景之外

如果我有一个棋盘图案,如何在记住每隔一个像素都是白色的情况下,将高斯拟合到黑色像素的值?如何拟合标准的2D高斯很清楚。

o2gm4chl

o2gm4chl1#

首先,您可能会发现this article很有趣。在这种情况下,去马赛克是您可能需要的通用算法。this document中介绍了一种方法,该方法在填充非绿色像素的绿色值时考虑非绿色像素的亮度,以获得完整的RGB图像。对于红色过滤的像素,该算法将当前的(红色)像素和相邻的红色像素之间的差值,并将得到的差值加到插值的绿色值上。

相关问题