问题标签 [chromakey]

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 投票
1 回答
685 浏览

glsl - 将 ShaderToy Chromakey 示例移植到 P5.js

我正在尝试将 shadertoy chromakey 示例移植到 p5,并使用网络摄像头作为视频源。经过多次阅读着色器文档后,我的代码似乎无法正常工作。我需要一些帮助。

我按照本指南移植了 p5 的代码

片段着色器代码:

P5草图代码:

毛刺测试

Shadertoy chromakey 原始片段着色器

0 投票
1 回答
90 浏览

java - 从图像 Java 中删除 chromakey 的简单方法

有没有简单的方法可以通过java从图像中删除色键?我尝试阅读有关 openCV 的信息,这很难学习和使用。

0 投票
3 回答
3196 浏览

image - 如何批处理色度键照片(屏蔽绿屏)

目标

我在这里有数百张与这张相似的图片:

来源照片 我只是想使用绿屏为每个看起来像这里的图像创建一个蒙版(最好将边框平滑一点):

面具

如果您想进行测试,这是原始图像:https ://mega.nz/#!0YJnzAJR!GRYI4oNWcsKztHGoK7e4uIv_GvXBjMvyry7cPmyRpRA


我试过的

我发现这篇文章用户使用 Imagemagick 来实现色度键控。

但无论我如何调整数字,结果都不完美: 结果


我觉得自己很愚蠢,我自己无法找到解决如此简单问题的方法。另请注意,我使用的是 Linux。所以没有 Photoshop 或 After Effects!:)

但我确信必须有解决这个问题的办法。

更新 1

我刚刚尝试通过运行 fmw42 使用这个绿脚本,我对结果相当满意。 但是处理一张图像大约需要 40 秒,这导致我的所有图像总共需要 8 小时(尽管我有一个相当强大的工作站,请参阅下面的规格)也许这与处理时发生的那些错误有关?:./greenscreen infile.jpg outfile.png

工作站规格

  • 内存:125,8 GiB
  • 处理器:AMD® Ryzen 9 3900x 12 核处理器 × 24
  • 显卡:GeForce GTX 970/PCIe/SSE2 (两个)
0 投票
1 回答
126 浏览

c++ - DirectX 中的色度键

我需要使用 Direct2d 实现一些色度键功能。

我有一些来自 MSDN 的代码示例:

但是,我对 WinAPI 有点陌生。
我们的平台具有产量实例的功能ID3D11Device,我收到DX11Texture作为输入。
我有两个问题:
1. 我怎样才能m_d2dContext得到ID3D11Device
2. 我怎样才能ID2D1Image得到DX11Texture

0 投票
1 回答
192 浏览

swift - How to not cause dark gray color to be transparent removing background from image

I'm having an issue where when I try to remove the green from an image (in this case the image background) but all the dark grays (within the part of the image I want to keep) become semi-transparent. I am unsure why, would like some advice on how to:

Sample image:

enter image description here

0 投票
0 回答
1094 浏览

c# - 如何删除实时视频中的背景(UWP、C#)

谢谢你来我的问题。

我想用 UWP 去除视频中的绿色背景。色键的定时是点击【删除】按钮。(请看下图)

在此处输入图像描述

我知道很多人为图像做了色键效果。但我找不到任何关于视频色键的网站。

我在 UWP 中制作了 webRTC 应用程序(您可以在 Microsoft 的github中找到示例),然后我想做 chromakey。

这个应用程序使用 MediaplayerElement 来显示视频。

我的想法是...

  1. 获取视频帧,因为视频是一系列图像。

  2. 删除每个图像的绿色背景。

    这时,我们可以使用多种库。(位图、Win2D、OpenCVSharp、Magick.NET...)

  3. 显示它们。

在 HTML 和 JavaScript 中,我们可以使用 video 和 canvas 元素,然后我们可以轻松地做这些事情。但我不能在 C# 中完成它们。

请帮我...

(XAML 代码)

(参考)

・<a href="https://github.com/microsoft/MixedReality-WebRTC" rel="nofollow noreferrer">MixedReality-WebRTC 这是我的应用程序的基础。

・<a href="https://docs.microsoft.com/ja-jp/windows/uwp/audio-video-camera/play-audio-and-video-with-mediaplayer" rel="nofollow noreferrer">如何播放 MediaPlayerElement

・<a href="https://docs.microsoft.com/ja-jp/windows/uwp/audio-video-camera/basic-photo-video-and-audio-capture-with-mediacapture#capture-a- video" rel="nofollow noreferrer">捕获视频

・<a href="https://docs.microsoft.com/ja-jp/windows/uwp/audio-video-camera/media-compositions-and-editing#add-effects-to-a-media-clip" rel="nofollow noreferrer">为媒体剪辑添加效果

・<a href="https://stackoverflow.com/questions/20901093/c-sharp-net-green-screen-background-remove">c#.NET绿屏背景移除

0 投票
1 回答
203 浏览

swift - 通过 Buffer Post Xcode 11.5 更新的数据

我有的:

引用Apple 的 Chroma Key Code,它指出我们可以通过以下方式创建 Chroma Key Filter Cube

然后我创建了一个函数,以便能够将任何图像插入此过滤器并返回过滤后的图像。

然后我可以在任何图像上执行此功能并获得色度键图像。

更新问题:

let data = Data(buffer: UnsafeBufferPointer(start: &cubeRGB, count: cubeRGB.count))

但是,一旦我将 Xcode 更新到 v11.6,我就会在上面的代码行中收到警告Initialization of 'UnsafeBufferPointer<Float>' results in a dangling buffer pointer以及运行时错误Thread 1: EXC_BAD_ACCESS (code=1, address=0x13c600020)

我尝试用这个答案解决这个问题,以纠正 Swift 的新UnsafeBufferPointer警告。然后警告被纠正,我不再有运行时错误。

问题

现在,虽然没有出现警告并且我没有遇到运行时错误,但我仍然得到 print statement Not filtered image。我认为问题源于处理或删除数据的方式,不完全确定如何正确UnsafeBufferPointers处理Data.

正确获取Data色度键的正确方法是什么?

0 投票
1 回答
205 浏览

opengl - 如何从边缘羽化色度蒙版

这是我用来做色度键的着色器,着色器效果很好,但我需要羽化色度蒙版的边缘。

我怎样才能做到这一点 ?

这是基本图像 在此处输入图像描述

这是色度键控后的结果。 在此处输入图像描述

如果有人还可以提供一些有关在着色器中添加更多细节的信息,那么对于色度键控也没有太多可用的信息。

0 投票
2 回答
466 浏览

javascript - 如何使用 GPU.js 将繁重的 JavaScript 数学运算传递给 GPU

背景
我已经构建了一个基于 Web 的小应用程序,它会弹出窗口来显示您的网络摄像头。我想添加对您的提要进行色度键的功能,并且已经成功地使几种不同的算法正常工作。然而,我发现的最好的算法对于 JavaScript 来说是资源密集型的;单线程应用程序。

问题
有没有办法将密集的数学运算卸载到 GPU 上?我试过让 GPU.js 工作,但我不断收到各种错误。这是我想让 GPU 运行的功能:

这里发生的是我发送一个 RGB 值,rgbToLab它返回 LAB 值,该值可以与我的绿屏已存储的 LAB 值进行比较dE76。然后在我的应用程序中,我们检查该dE76值是否为阈值,例如 25,如果该值小于此值,我会将视频源中的像素不透明度设置为 0。

GPU.js 尝试
这是我最新的 GUI.js 尝试:

错误:
以下是我在调用 tmp 函数时尝试使用 GPU.js 时遇到的错误列表。1)用于我上面提供的代码。2) 用于擦除 tmp 中的所有代码并仅添加一个空返回 3) 是如果我尝试在 tmp 函数中添加函数;一个有效的 JavaScript 东西,但不是 C 或内核代码。

  1. 未捕获的错误:未定义标识符
  2. 未捕获的错误:编译片段着色器时出错:错误:0:463:';' : 语法错误
  3. 未捕获的错误:getDependencies 中未处理的类型 FunctionExpression
0 投票
1 回答
1065 浏览

python - chromakey:opencv 使绿屏视频透明

我正在使用下面的脚本将原始视频的绿屏替换为背景图像,但结果不是我所期望的,我已经更改了 u_green 数组参数和 l_green,但它只会变得最糟糕。最后,我想让它透明我应该使用哪个面具?

我将不胜感激任何帮助来解决这个问题。

Python脚本:

结果在此处输入图像描述

更新 源视频: 链接