我有一台相机,它为我提供 10 位数据的原始二进制数据。它遵循拜耳模式 RGGB,每个像素都使用 16 位块保存。我几乎可以成功地对图像进行去马赛克。
问题
RGB 图像看起来几乎是全黑的。如果我将原始数据乘以 64,RGB 图像看起来更好,但更绿。整体强度非常低。相机提供商有相机的实时视图,它在两个方面看起来都好得多。
我猜
由于 10 位被保存到 16 位块中,因此我使用的工具假定为 16 位深度(至少 Matlab 和 OpenCV 确实如此)。为了弥补这一点,我将原始数据乘以 64(左移 6 位)。但仍然不够。如果我乘以 128,一些像素会饱和,然后图像看起来很奇怪。
我试过的
使用 Matlab 图像处理工具箱、Python 颜色去马赛克包和 OpenCV 函数,我得到了相同的结果,但它们与实时可视化不匹配。
更新 我分析了供应商工具的直方图,以及来自 OpenCV 的直方图。我不确定,但有趣的是没有高于 255 的值。但是,在我从他们的软件记录的原始数据中,有很多高于 255 的值,但与低于 255 的值相比没有。因此,如果我用 max 剪辑图像值为 255,最终结果看起来非常相似!
问题
- 还有什么我可以验证的吗?我认为这是我的问题,因为这三个工具给出了相同的结果。
- 有没有更好的方法来处理 10 位像素转换为 16 位?
- 我在更新中发现的内容有什么意义吗?似乎这两个额外的位除了噪声之外什么都没有!
任何帮助表示赞赏。很抱歉没有提供数据或图片(公司隐私)。
谢谢!