你好 可以请问一下吧Qt上的人脸识别程序移植到android上应该怎么操作吗 怎么吧深度学习人脸识别替换opencv自带的人脸识别求帮忙
可以使用JavaCV,或者opencv_contrib repo中的FaceRecognizer类。
可以参考:
首先打开摄像头、读取图片并对图片进行处理、进行人脸识别,将图片转成QImage对象,将QPixmap图像显示到label中(QPixmap主要是用于绘图,针对屏幕显示而最佳化设计),部分代码如下:
void MainWindow::timerEvent(QTimerEvent *event)//定时器处理函数
//若timer_ID、study_timerID、check_timerID定的时间到时,则会进入此函数
{
/***人脸识别显示到label中***/
if(timer_ID == event->timerId())
{
v.read(src);//把读到的摄像头图片存储到原图src中
flip(src,src,1);//将图片进行翻转,否则label中呈现出来的是和实际动作相反的
cvtColor(src,rgb,CV_BGR2RGB);//要在label中显示图片需要将bgr图片转换为rgb图片
cvtColor(rgb,gray,CV_BGR2GRAY);//将后续用到的rgb图片转换为gray灰度图为了处理人脸识别时数据是单通道的,数据量小
c.detectMultiScale(gray,faces,1.1,3,0,Size(24,24));//人脸识别
for(uint i=0;i<faces.size();i++)//循环找屏幕中的多个脸
rectangle(rgb,faces[i],Scalar(255,0,0),2,LINE_8,0);//并给检测到的人脸画红框
cv::resize(rgb,rgb,Size(400,300));//更改rgb图片的大小
ui->label_show->resize(QSize(400,300));//更改label的大小
QImage img(rgb.data,rgb.cols,rgb.rows,rgb.cols*rgb.channels(),QImage::Format_RGB888);
//要在label中显示图片需把Mat类型的rgb图片转换为QImage类型图片
ui->label_show->setPixmap(QPixmap::fromImage(img));//要在label中显示图片需把QImage图片转换为QPixmap类型
}