突出显示的代码演示了 openCV 框架已加载到我的 C 代码中,它呈现了 Police watching。这只是为了证明它可以非常流畅地编写代码。
目标: 我的网络摄像头已连接到 USB 端口。我想捕获实时网络摄像头图像并从本地文件 (/tmp/myface.png) 匹配,如果实时网络摄像头与本地文件 myface.png 匹配,它将显示文本“Police watching”
我要解决的问题: 1) 我现在如何使用以下代码捕获我的网络摄像头? 2) 当 webCAM 被捕获时,我如何加载文件并查找它是否匹配,匹配时它只显示文本。
#include "cv.h"
#include "highgui.h"
int main()
{
CvPoint pt = cvPoint( 620/4, 440/2 ); // width, height
IplImage* hw = cvCreateImage(cvSize(620, 440), 8,3); // width, height
CvFont font; // cvSet(hw,cvScalar(0,0,0)); // optional
cvInitFont (&font, CV_FONT_HERSHEY_COMPLEX, 1.0, 1.0, 0, 1, CV_AA);
cvPutText (hw, "Police watching", pt, &font, CV_RGB(150, 0, 150));
cvShowImage("Police watching", hw); //cvNamedWindow("Police watching", 0); // optional
cvWaitKey (0);
}
注意:当这个模型可以工作时,我会练习这个以转换成 JNI Java 模型。
最佳答案
捕获视频帧很简单 follow this example .重要的部分是:
IplImage *img = cvLoadImage( argv[1], CV_LOAD_IMAGE_COLOR );
CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANY );
while ( 1 ) {
IplImage* frame = cvQueryFrame( capture );
//match(img,frame);
}
cvReleaseCapture( &capture );
第二部分可能更难,具体取决于您要做什么。如果你想简单地比较图像,你可以使用 cvNorm .如果你想要face detection或人脸识别,你真的需要知道你在做什么。
关于java - OpenCV 如何检测网络摄像头并比较本地文件以匹配人脸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6080267/