Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/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
Flash 利用网络摄像头检测手部心脏的增强现实技术_Flash_Webcam_Augmented Reality - Fatal编程技术网

Flash 利用网络摄像头检测手部心脏的增强现实技术

Flash 利用网络摄像头检测手部心脏的增强现实技术,flash,webcam,augmented-reality,Flash,Webcam,Augmented Reality,可能吗 我正在学习,我想要一些可以帮助我的提示和教程链接 谢谢 在这里可以找到一个非常简单的例子(尽管是在flash中): 它使用papervision、flar和flex sdk来满足您的需求。 如果您熟悉actionscript,您可以使用 在几个小时内拥有自己的图像和模型(改变需要检测的模式需要花费我大约10分钟的时间来弄清楚如何进行) 本例在黑白图像上使用模式识别,因此它也应该能够识别形状 它附带了一个工具,可以从图像创建模式文件, 你所需要做的就是从你贴的图片上剪下心形, 将其转换

可能吗

我正在学习,我想要一些可以帮助我的提示和教程链接


谢谢

在这里可以找到一个非常简单的例子(尽管是在flash中):

它使用papervision、flar和flex sdk来满足您的需求。 如果您熟悉actionscript,您可以使用 在几个小时内拥有自己的图像和模型(改变需要检测的模式需要花费我大约10分钟的时间来弄清楚如何进行)

本例在黑白图像上使用模式识别,因此它也应该能够识别形状

它附带了一个工具,可以从图像创建模式文件, 你所需要做的就是从你贴的图片上剪下心形, 将其转换为黑色/白色并制作图案

由于您的网络摄像头创建彩色视频,您可能需要将其转换为灰度 为了工作


我认为要让它正常工作需要很多调整,但这不是不可能的

这可以通过FLARToolKit或Flash增强现实工具包来实现

Adobe与John Mayer合作进行了一个项目,可以在YouTube视频中看到:

…或在以下位置使用网络摄像头实时打印图标和演示:


我刚刚用带有opencv的haarcascades制作了一个类似的程序。我相信它可以很容易地绑定到ARToolKit中。看看我的教程。

我能够用这段代码将ARToolKit与OpenCv联系起来。出于某种原因,ARToolKit希望使用ARGB而不是BGR或RGBA

ARUint8 rgbTmp[3];
for(int y=0; y < image_opencv->height; y++) {
    for(int x=0; x < image_opencv->width; x++) {
        rgbTmp[0] = image_opencv->imageData[image_opencv->widthStep * y + x*3]; // B
        rgbTmp[1] = image_opencv->imageData[image_opencv->widthStep * y + x*3 + 1]; // G
        rgbTmp[2] = image_opencv->imageData[image_opencv->widthStep * y + x*3 + 2]; // R
        frame->imageData[frame->widthStep * y + x*4] = 255; // A
        frame->imageData[frame->widthStep * y + x*4 + 1] = rgbTmp[2]; // R
        frame->imageData[frame->widthStep * y + x*4 + 2] = rgbTmp[1]; // G
        frame->imageData[frame->widthStep * y + x*4 + 3] = rgbTmp[0]; // B
    }
}
ARUint8 *arImage = (ARUint8 *)frame->imageData; // This is very fast conversion
ARUint8 rgbTmp[3];
对于(int y=0;yheight;y++){
对于(intx=0;xwidth;x++){
rgbTmp[0]=image_opencv->imageData[image_opencv->widthStep*y+x*3];//B
rgbTmp[1]=image_opencv->imageData[image_opencv->widthStep*y+x*3+1];/G
rgbTmp[2]=image_opencv->imageData[image_opencv->widthStep*y+x*3+2];//R
帧->图像数据[帧->宽度步长*y+x*4]=255;//A
帧->图像数据[帧->宽度步长*y+x*4+1]=rgbTmp[2];//R
帧->图像数据[帧->宽度步长*y+x*4+2]=rgbTmp[1];//G
帧->图像数据[帧->宽度步长*y+x*4+3]=rgbTmp[0];//B
}
}
ARUint8*arImage=(ARUint8*)帧->图像数据;//这是非常快的转换

我的困难在于识别手的格式而不是纸张。这应该不容易,但我会试试。。。谢谢!