Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 处理:如何将图像设置为前景_Opencv_Video_Position_Processing_Foreground - Fatal编程技术网

Opencv 处理:如何将图像设置为前景

Opencv 处理:如何将图像设置为前景,opencv,video,position,processing,foreground,Opencv,Video,Position,Processing,Foreground,我想知道是否有人可以帮助我设置一个图像的前景使用处理。 我有一个草图,其中一个视频显示在一个连续的循环中,在这个视频的上方,有一个阿尔法遮罩,可以看到透明的视频。 然后,通过红外接近传感器触发网络摄像头的视频。这个视频是扭曲了一个圆柱体,我想视频下的面具,因为我会放大它,以适应面具 我在网上搜索,但什么都没有。 我试图移动视频上方和下方的线条,但没有任何效果。我在没有翘曲的情况下使用上一个版本,只需移动两条线,它就可以工作了。但现在我有了这种扭曲,没有任何效果,它让我发疯 非常感谢你的帮助。 这

我想知道是否有人可以帮助我设置一个图像的前景使用处理。 我有一个草图,其中一个视频显示在一个连续的循环中,在这个视频的上方,有一个阿尔法遮罩,可以看到透明的视频。 然后,通过红外接近传感器触发网络摄像头的视频。这个视频是扭曲了一个圆柱体,我想视频下的面具,因为我会放大它,以适应面具

我在网上搜索,但什么都没有。 我试图移动视频上方和下方的线条,但没有任何效果。我在没有翘曲的情况下使用上一个版本,只需移动两条线,它就可以工作了。但现在我有了这种扭曲,没有任何效果,它让我发疯

非常感谢你的帮助。 这是我的代码:

/////////////////////////////////////////////////////// 编辑 ///////////////////////////////////////////////////////

再次感谢您的帮助,很抱歉链接,我不知道。 我知道如何使用网络摄像头/图片中的电影/视频作为纹理,这不是我的问题。 我遇到的问题是,我会把一个面具放在形状上面,上面有纹理,我不知道怎么做,我试着搜索很多东西。我从3天开始就在处理这个问题。。。 所以,在我的代码中,我隔离了问题(MVE),关于掩码,我用PS图象处理软件创建它:一个简单的形状,黑色背景和中间的透明形状,以透明的格式输出给PNG格式的Web。
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);
}
int tubeRes=32;
浮动[]管x=新浮动[管];
浮动[]管Y=新浮动[管];
皮马杰;
皮美杰面具;
无效设置(){
大小(1280、1024、P3D);
img=loadImage(“berlin-1.jpg”);
masque=loadImage(“mask.png”);
浮子角度=210.0/管;
对于(int i=0;i

你必须从更小的角度开始,并且你必须将你的问题隔离到一个更简单的草图中。现在你有很多事情要做:播放视频文件、摄像机捕获、串行传感器、图像屏蔽和OpenCV逻辑。这一次调试太多了

相反,创建一个小得多的示例草图,它只做一件事。从一个简单显示视频播放的草图开始。当你得到工作,然后添加逻辑,使用视频作为纹理

下面的示例演示了如何将视频用作纹理:

导入处理。视频。*;
电影;
无效设置(){
尺寸(500,500,P3D);
帧率(30);
电影=新电影(此为“DSC_1940.MOV”);
movie.loop();
}
void draw(){
背景(0);
beginShape();
纹理(电影);
顶点(mouseX,mouseY,0,0);
顶点(400,100,电影宽度,0);
顶点(400,400,movie.width,movie.height);
顶点(100400,0,电影高度);
endShape();
}
作废电影事件(电影我的电影){
myMovie.read();
}
请注意,这比您的代码简单得多,一次只做一件事。从这样的事情开始,尽可能多地硬编码。我们不需要查看您的串行代码,如果可能,我们也不需要从您的网络摄像头或OpenCV中查看任何内容

以本例为例,绘制并添加逻辑以使用图像遮罩,或使用圆柱体而不是正方形。(但同样,不要包含任何与你的问题没有直接关系的逻辑!)然后当你陷入困境时,你可以在新问题中将其作为MCVE发布。祝你好运

编辑 如果您只想屏蔽一个图像,那么您只需使用
PImage::mask()
函数即可。可以在中找到更多信息,但应该很简单,只需在代码中调用
img.mask(masque)

img=loadImage(“berlin-1.jpg”);
masque=loadImage(“mask.png”);
面具(面具);
然后您应该能够使用
img
作为纹理,并且已经应用了遮罩

但是,您的
.png
文件似乎不能用作掩码
如果我使用图像掩蔽示例中的
mask.jpg
文件(在处理编辑器中,转到
file>Examples>image>Alphamask
,然后转到
Sketch>Show Sketch文件夹,
然后在
data
目录中查找
mask.jpg
)或者,如果我将您的
.png
文件保存为
.jpg
文件,它可以正常工作


如果我将示例
mask.jpg
文件保存为
.png
文件,它就可以正常工作。所以你的文件特别有问题。

我不知道你在问什么。如果你发一个帖子,你会有更好的运气。创建一个小的示例程序,只显示问题,没有任何额外的代码。尽可能多地硬编码。我们可能不需要序列的东西,甚至可能不需要opencv的东西。使用硬编码的值(和电影文件,而不是摄影机提要)来显示问题,我们将更容易帮助您。嗨,凯文,谢谢您的回复。对不起,这是MCVE。在圆柱体上的扭曲图像下方是遮罩。我希望这个面具在圆柱体上的图像上方。我希望它能帮助你。再次感谢您的回复:)嗨,凯文,再次感谢您的回复和帮助。我给了你下载草图的链接(带有数据文件夹),在那里我用照片而不是视频来隔离问题