OpenCV 如何检测网络摄像头并比较本地文件以匹配面部
OpenCV how can i detect webcam and compare the local file to match face
突出显示的代码表明openCV框架已加载到我的C代码中,并且它呈现了警察监视。这只是为了证明它非常流畅且
编写的代码非常干净。目标:我的网络摄像头已连接到 USB 端口。我想捕获实时网络摄像头图像并从本地文件(/tmp/myface.png)匹配,如果实时网络摄像头与本地文件 myface.png 匹配,它将显示文本"警察观看"
我要解决的问题:1)我现在如何在以下代码上捕获我的网络CAM?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模型。
捕获视频帧很简单,只需按照此示例操作即可。关键的部分是:
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。如果你想要人脸检测或人脸识别,你真的需要知道你在做什么。
这就是我获得网络摄像头提要的方式...(代码是用Python编写的,但很容易翻译)
# create capture device
device = 0 # assume we want first device
capture = cv.CreateCameraCapture(0)
cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH, 640)
cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT, 480)
# check if capture device is OK
if not capture:
print "Error opening capture device"
sys.exit(1)
# capture the current frame
frame = cv.QueryFrame(capture)
if frame is None:
break
# mirror
cv.Flip(frame, None, 1)
#Do face detection here
我认为您将很难尝试将单个文件中的人脸与实时视频流匹配。 查看cv.HaarDetectObjects以获取一些很酷的特征检测算法。
相关文章:
- C++将目录中的所有文件与::filesystem进行比较
- catch框架有没有办法比较流或文件
- 从文件中读取多个字节,并将它们存储在C++中进行比较
- 将字符串与文件上的数据进行比较
- 通过比较C++中的行在 txt 文件中搜索的最简单方法是什么?
- 比较文本文件的元素
- 比较文本文件的元素
- 如何从目录迭代器中选择特定文件并进行比较
- 比较两个没有一行共同点的大文件
- 我正在尝试从输入文件中读取,然后使用它们的子字符串比较字符串的特定部分
- 比较文件中的最佳平均成绩并打印学生的姓名
- 如何在 c++ 中比较两个文本文件
- 如何在 c++ 中比较多个.txt文件?
- 使用-L和-L标志与将库文件作为输入进行比较
- 如何将新的字符串名称与现有的txt文件进行比较
- 如何比较文件中包含的下一个字符
- 在客户端和远程服务器中比较文件列表的有效方法是什么?
- 比较文件中的字符串
- 比较文件中的字符串行
- 比较文件启动时间