0

我正在研究拜耳原始(.raw 格式)图像域,我需要根据我的需要编辑像素(应用仿射矩阵)并将它们保存回 .raw 格式。所以有两个子问题。

  1. 我可以编辑像素,但可以将它们保存为 .raw 我正在使用一个名为 rawpy 的强大库,它允许我将像素值读取为 numpy 数组,而我尝试将它们保存回来我无法保留该值

    rawImage = rawpy.imread('Filename.raw') // 这给出了一个 rawpy 对象

    rawData = rawImage.raw_image //这将像素作为numpy数组

    .

    .//对rawData执行的一些操作,仍然是一个numpy数组

    .

    imageio.imsave('newRaw.raw', rawData)

这不起作用,抛出错误未知文件类型。有没有办法以 .raw 格式保存此类文件。

注意:我也试过这个: -

rawImageManipulated = rawImage

rawImageManipulated.raw_image[:] = rawData[:] //这会将新数据复制到 rawpy 对象上,但不会保存或保留分配的值。

  1. 旋转拜耳图像 - 我知道 rawpy 不处理这个,据我所知,任何其他 API 或库也不处理。opencv和pillow现有的图像旋转API在旋转时会改变亚像素。我怎么知道?经过一系列小旋转(例如,30 度旋转 12 次)后,当我回到 360 度旋转时,使用十六进制编辑器进行比较时,子像素并不相同。

这些问题有解决方案吗?我走错方向了吗?你能指导我吗?我目前正在使用 python 我对任何语言或堆栈的解决方案持开放态度。谢谢

4

1 回答 1

0

据我所知,没有图书馆能够直接以拜耳模式格式旋转图像(如果这就是你的意思),这是有充分理由的。相反,您需要转换为 RGB,然后再转换回来。(如果你试图将拜耳图案图像处理为只是一个灰度位图,旋转的结果将是一场灾难。)

由于数值问题,累积旋转会破坏图像,并且在整圈后您将永远无法获得原始图像。为了最大限度地减少损失,请从原始角度执行所有旋转,并增加角度。

于 2020-08-25T08:09:11.897 回答