【发布时间】:2017-01-21 04:23:53
【问题描述】:
我想知道是否有人可以帮助我使用处理将图像设置为前景。 我有一个草图,其中视频以连续循环的形式显示,在该视频上方,有一个 alpha 蒙版可以查看透明的视频。 然后,使用 IR 接近传感器触发来自网络摄像头的视频。此视频被圆柱体扭曲,我希望视频位于蒙版下方,因为我会将其放大以适合蒙版。
我在互联网上搜索,但一无所获。 我试图在视频下方移动上面的线条,但没有任何效果。当没有翘曲时,我使用以前的版本进行了此操作,我只需移动两条线,它就可以工作了。但是现在我有这种扭曲,没有任何效果,它让我发疯......
非常感谢您的帮助。 这是我的代码:
/////////////////////////////////////// //////// 编辑 ///////////////////////////////////////// /////
再次感谢您的帮助,对链接感到抱歉,我不知道。 我知道如何使用网络摄像头/图片中的电影/视频作为纹理,这不是我的问题。 我遇到的问题是我会在带有纹理的形状上方放置一个蒙版,我不知道该怎么做,我尝试搜索了很多东西。自3天以来我一直在处理这个问题...... 因此,在这里我隔离了问题(MCVE)的代码,关于蒙版,我使用 Photoshop 创建了它:一个带有黑色背景和中间透明形状的简单形状,以具有透明度的 PNG 格式导出到网络。
int tubeRes = 32;
float[] tubeX = new float[tubeRes];
float[] tubeY = new float[tubeRes];
PImage img;
PImage masque;
void setup() {
size(1280, 1024, P3D);
img = loadImage("berlin-1.jpg");
masque = loadImage("mask.png");
float angle = 210.0 / tubeRes;
for (int i = 0; i < tubeRes; i++) {
tubeX[i] = cos(radians(i * angle));
tubeY[i] = sin(radians(i * angle));
}
noStroke();
}
void draw() {
translate(width / 2, height / 2);
beginShape(QUAD_STRIP);
texture(img);
for (int i = 0; i < tubeRes; i++) {
float x = tubeX[i] * 120;
float z = tubeY[i] * 100;
float u = img.width / tubeRes * i;
vertex(x, -270, z, u, 0);
vertex(x, 230, z, u, img.height);
}
endShape();
beginShape(QUADS);
texture(img);
vertex(0, -100, 0, 0, 0);
vertex(100, -100, 0, 100, 0);
vertex(100, 100, 0, 100, 100);
vertex(0, 100, 0, 0, 100);
endShape();
translate(-640, -515);
}
【问题讨论】:
-
我不确定你在问什么。如果您发布minimal reproducible example,您的运气会更好。创建一个只显示问题而没有任何额外代码的小示例程序。尽可能硬编码。我们可能不需要串行的东西,甚至可能不需要 opencv 的东西。使用硬编码值(和电影文件而不是相机源)来显示问题,我们会更容易为您提供帮助。
-
嗨,凯文,感谢您的回复。抱歉,这里是 MCVE。在圆柱体上的翘曲图像下方是蒙版。我希望这个面具在圆柱体的图像上方。我希望它会帮助你。再次感谢您的回复 :) drive.google.com/file/d/0B0d1J3S0T2RseWJsNVFFZmFGMmM/…
标签: opencv video position processing foreground