问题标签 [demosaicing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
410 浏览

c++ - OpenGL纹理像素映射条纹毛刺(不是边框)

我正在研究 OpenGL Bayer 去马赛克算法,虽然我已经设法使这些技术看起来有效,但我在输出中偶尔会出现故障,我似乎无法弄清楚原因。在此处查看图片:https ://imgur.com/a/gz5YL 。条纹仅出现在表面的某些尺度上,在大多数尺度上(可能 99%)没有毛刺。

顶点着色器:

片段着色器:

顶点定义为

过滤器设置为 GL_NEAREST。texSize 是上传的纹理图像的大小,以像素为单位。只是为了方便(?)我使用相同的顶点和纹理坐标 [0,1] 并且相应地配置 mvp 以保持纵横比。我正在使用 Qt5.5 MSVC32,并且这些故障已在非常不同的硬件上重现。

我玩过许多不同的映射技术(调整纹理坐标等)。其中一些似乎比其他产生更好的结果(较少出现故障),因此我认为原因可能是纹理坐标不够准确。至少在某一时刻,当我不使用 mvp 来保持纵横比时,我认为问题已经消失了,但我只是在想象,这会有所作为吗?

知道可能是什么原因造成的吗?

一些代码归功于 graphics.cs.williams.edu/papers/BayerJGT09/

示例 CFA 图像来自 www.cs.unc.edu/~lazebnik/spring09/assignment1.html

更新 6.12.2015: 在这里保持手指交叉,但我认为我通过使用非标准化纹理坐标获取取得了良好进展

而不是纹理/纹理2D。我恢复了所有时髦的纹理坐标调整,并将 [0, size] 顶点输入:

初步测试显示出良好的结果——我们会看看它是否为时过早。即使这是解决方案,我仍然不明白为什么我无法使用归一化坐标击中纹素。

0 投票
1 回答
990 浏览

java - 去马赛克算法,用于从二进制文件用 Java 构造图像(从拜耳滤波器传感器接收)

我应该从 Java 程序读取的二进制文件中用 Java 构建图像。该文件来自拜耳过滤器传感器。该文件由每个像素的二进制值组成。每个像素由 10 位表示。需要编写去马赛克算法才能从二进制数据构建图像。有 1024*1280 像素。因此,1280*1024*10 = 13107200 位 = 1638400 字节是图像大小。有人用Java实现了这样的算法吗?如果有人可以提供帮助,我会很高兴。太感谢了。

0 投票
0 回答
1289 浏览

python - 使用 Keras 进行图像回归(去马赛克)

我正在使用 Keras 进行颜色去马赛克。我尝试过卷积神经网络,但它无法正常工作。我的代码是-:

有人可以为这个图像去马赛克问题推荐一些架构吗?目前我正在使用卷积神经网络和 cifar10 数据库。

0 投票
0 回答
1340 浏览

python - 如何用 rawpy 去马赛克 picamera 原始图像?

我正在尝试从 Pi NoIR 相机堆叠长时间曝光。

picamera 原始格式可以根据示例解压缩到一个 numpy 数组中:http: //picamera.readthedocs.io/en/release-1.10/recipes2.html#raw-bayer-data-captures

如何将此 numpy 数组转换为 rawpy ( https://github.com/letmaik/rawpy ) 图像以进行后处理和去马赛克?

0 投票
0 回答
554 浏览

rgb - RAW Bayer去马赛克直接转YUV,不经过RGB

我希望将 RAW 拜耳图像直接分解为 YUV 格式,时间至关重要。我发现的在线算法通过 RAW->RGB 然后 RGB->YUV。有直接的方法吗?非常感谢 c++/python/伪代码,谢谢!

0 投票
1 回答
1602 浏览

opencv - cv::cvtColor() 去马赛克中使用了哪些插值方法

我想重现cv::cvtColor()将原始拜耳图像转换为RGB图像的功能。有几种不同的方式,例如COLOR_BayerBG2BGR, 或COLOR_BayerBG2BGR_VNG, 和COLOR_BayerBG2BGR_EA。但是,我找不到有关每种方法使用哪种插值方法的任何信息。应该有一些对出版物或专利的引用。有谁知道?

0 投票
0 回答
1107 浏览

python - 用于 DEMOSAIC RCCB 原始图像的 Python 脚本

我需要一个 Python 脚本来 DEMOSAIC 一个 RCCB 原始图像。我还附上了一张示例图片。在此处输入图像描述

有什么建议么 ?非常感谢 。我希望我没有提出任何过时的问题。我可以理解这里的概念,但不确定如何在 python 中去马赛克:/

0 投票
2 回答
2231 浏览

android - 如何去马赛克拜耳 RAW 图像?

我有一个专有的拜耳 RAW 图像,我需要在 Android 上对其进行去马赛克以显示图像。我正在逐字节读取文件头以检索分辨率信息(imageWidth/imageHeight)。在标头之后是来自字节 2000 及以下的像素数据。如何在 Android 上对这个拜耳像素数据进行去马赛克以显示图像?

这是我的代码,它读取字节数据并检索分辨率:

0 投票
1 回答
363 浏览

c++ - Halide:大图像的 Demosaic 算法错误。似乎适用于 16x16 图像。

我正在尝试为拜耳滤波器实现去马赛克算法,如本 pdf 的第 2.8 节(第 8 页)所示:http ://www.arl.army.mil/arlreports/2010/ARL-TR-5061.pdf 。我一直试图通过 RDom 实现一个功能。当我使用 16x16 图像时,痕迹实际上完成了,但是当我使用更大的图像(如 768x1280)时,痕迹会卡在:

以下是我的代码的简化版本:

这是卤化物中的错误吗?在这种情况下,代码完成执行并保存 16x16 输入的输出图像,但会卡在跟踪中以获取更大的图像。

0 投票
0 回答
123 浏览

c++ - SSE2 将压缩 RGB 转换为 RGBA 像素(每 3 个字节后添加第 4 个 0xFF 字节)

我的应用程序正在处理计算量很大的近实时工作负载,我需要尽可能加快速度。该软件是用 C++ 编写的,仅针对 Linux。

我的程序从专业的天文相机上抓取了一个 6.4 兆像素的 RAW 数据缓冲区,该相机能够以 3096 像素 x 2080 像素的分辨率提供 25 fps。然后,通过使用高质量的线性插值去拜耳算法,对该流进行实时去拜耳。我知道 HQ 线性插值去拜耳算法的计算量总是很大,但我的程序还有其他领域我想加快速度。

一旦流被 debayered,我需要将 RGB 缓冲区(从 debayering 创建)转换为 RGBA 缓冲区,因为我的理解(通过分析证明)GPU 在 RGBA 像素缓冲区上运行效率更高。但是,我很高兴能纠正这一点。


最初,我编写了一个非常简单的 for 循环(如下),当然,它产生了可怕的结果。

上面的代码给了我 13 fps 的帧速率。我的下一个实验是使用等于 255 的所有元素初始化缓冲区,然后使用以下代码:

上面的代码显着加快了循环;现在在 i7-7700 笔记本电脑上运行达到 23.9 fps。但是,在旧机器上运行此代码仍然会产生非常令人失望的帧速率。我知道旧机器在 debayering 方面遇到了困难,但分析清楚地表明转换为 RGBA 缓冲区会导致严重问题。


我已经读过可能使用 SSE 内在函数来更有效地做到这一点,但是,我对 SSE 内在函数的经验为零。

我已经尝试了许多在网上找到的 SSE 示例,但无法使其正常工作。因此,如果有 SSE 经验的人能够帮助我解决这个问题,我将不胜感激。

我不能以高于 2 或可能 3 的 SSE 为目标,因为我的软件可能在更旧的硬件上运行。

如果有人能指出我正确的方向,我将不胜感激。