问题标签 [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.
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] 顶点输入:
初步测试显示出良好的结果——我们会看看它是否为时过早。即使这是解决方案,我仍然不明白为什么我无法使用归一化坐标击中纹素。
java - 去马赛克算法,用于从二进制文件用 Java 构造图像(从拜耳滤波器传感器接收)
我应该从 Java 程序读取的二进制文件中用 Java 构建图像。该文件来自拜耳过滤器传感器。该文件由每个像素的二进制值组成。每个像素由 10 位表示。需要编写去马赛克算法才能从二进制数据构建图像。有 1024*1280 像素。因此,1280*1024*10 = 13107200 位 = 1638400 字节是图像大小。有人用Java实现了这样的算法吗?如果有人可以提供帮助,我会很高兴。太感谢了。
python - 使用 Keras 进行图像回归(去马赛克)
我正在使用 Keras 进行颜色去马赛克。我尝试过卷积神经网络,但它无法正常工作。我的代码是-:
有人可以为这个图像去马赛克问题推荐一些架构吗?目前我正在使用卷积神经网络和 cifar10 数据库。
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 ) 图像以进行后处理和去马赛克?
rgb - RAW Bayer去马赛克直接转YUV,不经过RGB
我希望将 RAW 拜耳图像直接分解为 YUV 格式,时间至关重要。我发现的在线算法通过 RAW->RGB 然后 RGB->YUV。有直接的方法吗?非常感谢 c++/python/伪代码,谢谢!
opencv - cv::cvtColor() 去马赛克中使用了哪些插值方法
我想重现cv::cvtColor()
将原始拜耳图像转换为RGB
图像的功能。有几种不同的方式,例如COLOR_BayerBG2BGR
, 或COLOR_BayerBG2BGR_VNG
, 和COLOR_BayerBG2BGR_EA
。但是,我找不到有关每种方法使用哪种插值方法的任何信息。应该有一些对出版物或专利的引用。有谁知道?
android - 如何去马赛克拜耳 RAW 图像?
我有一个专有的拜耳 RAW 图像,我需要在 Android 上对其进行去马赛克以显示图像。我正在逐字节读取文件头以检索分辨率信息(imageWidth/imageHeight)。在标头之后是来自字节 2000 及以下的像素数据。如何在 Android 上对这个拜耳像素数据进行去马赛克以显示图像?
这是我的代码,它读取字节数据并检索分辨率:
c++ - Halide:大图像的 Demosaic 算法错误。似乎适用于 16x16 图像。
我正在尝试为拜耳滤波器实现去马赛克算法,如本 pdf 的第 2.8 节(第 8 页)所示:http ://www.arl.army.mil/arlreports/2010/ARL-TR-5061.pdf 。我一直试图通过 RDom 实现一个功能。当我使用 16x16 图像时,痕迹实际上完成了,但是当我使用更大的图像(如 768x1280)时,痕迹会卡在:
以下是我的代码的简化版本:
这是卤化物中的错误吗?在这种情况下,代码完成执行并保存 16x16 输入的输出图像,但会卡在跟踪中以获取更大的图像。
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 为目标,因为我的软件可能在更旧的硬件上运行。
如果有人能指出我正确的方向,我将不胜感激。