2014-01-30 93 views
3

我打算创建一个使用OpenCV进行图像处理的Web应用程序。图像处理将比较用户上传的图片和数据库中的图片。我宁愿用户通过网络摄像头上传图片而不是类似的上传方式到this使用Web应用程序处理OpenCV

我想知道如何使用OpenCV库进行处理?我需要什么才能将我的OpenCV处理连接到我的Web应用程序?

回答

0

如果你想加载图像从网络使用VideoCapture类打开图像,我们打开视频文件。看下面的例子。

VideoCapture cap; 
if(!cap.open("http://docs.opencv.org/trunk/_downloads/opencv-logo.png")){ 
cout<<"Cannot open image"<<endl; 
return -1; 
} 

Mat src; 
cap>>src; 
imshow("src",src); 
imwrite("image.jpg",src); 
waitKey(); 

或者使用Portable Native Client为OpenCV的,现在移植到谷歌浏览器NaCl和PNaCl,见OpenCV news更多细节

+0

我从来没有听说过Native Client,但我会阅读它,并希望能回到您的具体问题,我可能有关于它。 – user3144542

0

你可以把摄像头拍摄并上传,然后比较它们像传统的图像文件(从文件系统和/或数据库)。

服用镜头现代的方式是使用的WebRTC: http://css.dzone.com/articles/face-detection-using-html5

其他替代方案可能涉及的Macromedia Flash或者类似的东西。

+0

这个应用比我想要做的要复杂得多,但是你在第一点上说的话似乎更多地是我想做的事情。问题是如何从网页将图像发送到我的OpenCV应用程序?目前,我必须在我的终端中输入图像源进行比较。 – user3144542

+0

您需要Web服务器和一些脚本才能在服务器上运行(例如,PHP脚本)。然后你用一个简单的上传表单设置一个HTML页面,将这些数据POST到你的脚本,你的脚本检查文件类型,如果它是正确的,它将被存储在服务器文件系统中。 您可以将文件路径存储在某个地方(数据库,甚至是纯文本文件),然后只需运行您的程序/可执行文件即可针对该路径执行图像处理。 结帐PHP和一个简单的数据库系统。 –

+0

对,这一切都是有道理的,我唯一不完全理解的是如何让程序或可执行文件运行?我可以将图像上传并存储在服务器文件系统中的某处,但在存储之后,我如何运行可执行文件? – user3144542