Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
Opencv比较矩形_Opencv_Rect_Mat - Fatal编程技术网

Opencv比较矩形

Opencv比较矩形,opencv,rect,mat,Opencv,Rect,Mat,我通过调用DetectMultiScale获得Rect向量: face_cascade.detectMultiScale(ImgGray,faces,1.1,2,0|CV_HAAR_SCALE_IMAGE); 但比较需要: compare(OriginalImg,roi,dist,CMP_EQ); 如何将Rect转换为Mat进行比较,或者是否有比较Rect的方法?如果要比较两个图像,则您的compare函数将2个cv::Mat作为第一个输入。 要从您的ImgGray获取roi,您必须从det

我通过调用DetectMultiScale获得Rect向量:

face_cascade.detectMultiScale(ImgGray,faces,1.1,2,0|CV_HAAR_SCALE_IMAGE);
但比较需要:

compare(OriginalImg,roi,dist,CMP_EQ);

如何将Rect转换为Mat进行比较,或者是否有比较Rect的方法?

如果要比较两个图像,则您的
compare
函数将2个cv::Mat作为第一个输入。 要从您的
ImgGray
获取roi,您必须从
detectMultiScale

Mat ImgGray;
vector<Rect> faces;
face_cascade.detectMultiScale(ImgGray,faces,1.1,2,0|CV_HAAR_SCALE_IMAGE);
Rect roiRect = faces[0];
Mat roi = ImgGray (roiRect);
compare(OriginalImg,roi,dist,CMP_EQ);
matimggray;
向量面;
面部级联。检测多尺度(ImgGray,面部,1.1,2,0 | CV_HAAR_比例图像);
Rect roiRect=面[0];
Mat roi=ImgGray(roiRect);
比较(原始图像、roi、距离、CMP_EQ);
OriginalImg
dist
roi
具有相同的大小和类型。
这解决了您的问题吗?

如果您想比较两个图像,您的
compare
函数将2个cv::Mat作为第一个输入。 要从您的
ImgGray
获取roi,您必须从
detectMultiScale

Mat ImgGray;
vector<Rect> faces;
face_cascade.detectMultiScale(ImgGray,faces,1.1,2,0|CV_HAAR_SCALE_IMAGE);
Rect roiRect = faces[0];
Mat roi = ImgGray (roiRect);
compare(OriginalImg,roi,dist,CMP_EQ);
matimggray;
向量面;
面部级联。检测多尺度(ImgGray,面部,1.1,2,0 | CV_HAAR_比例图像);
Rect roiRect=面[0];
Mat roi=ImgGray(roiRect);
比较(原始图像、roi、距离、CMP_EQ);
OriginalImg
dist
roi
具有相同的大小和类型。
这解决了您的问题吗?

0-这是
比较
,而不是
检测
。它执行

1-不能将Rect转换为Mat,因为一个定义了4点几何形状,而另一个定义了3D矩阵

2-您可以使用
Rect
来选择
Mat
,并在
比较中使用新的
Mat


3-人脸识别并不是那么简单。请退房。

0-它是
比较
,而不是
检测
。它执行

1-不能将Rect转换为Mat,因为一个定义了4点几何形状,而另一个定义了3D矩阵

2-您可以使用
Rect
来选择
Mat
,并在
比较中使用新的
Mat


3-人脸识别并不是那么简单。请签出。

转换成功,但我收到以下错误:OpenCV错误:输入参数的大小不匹配(操作既不是“数组op array”(其中数组具有相同的大小和类型),也不是“数组op scalar”,也不是“scalar op array”)在compare方法的文档中:
src1:第一个输入数组或标量,当它是数组时,它必须有一个通道。
ImgGray的roi是一个单通道矩阵,请确保OriginalImg也只由一个通道组成。顺便说一句,C.Canberk Bac关于特征识别的说法是正确的,并不是“比较”2 ROI那么简单。转换成功了,但我得到了以下错误:OpenCV错误:输入参数的大小不匹配(操作既不是“array op array”(数组大小和类型相同),也不是“array op scalar”,也不是“scalar op array”)在compare方法的文档中:
src1:第一个输入数组或标量,当它是数组时,它必须有一个通道。
ImgGray的roi是一个单通道矩阵,请确保OriginalImg也只由一个通道组成。顺便说一句,C.Canberk Bac关于特征识别的观点是正确的,这并不是“比较”2 ROI那么简单。人脸识别教程链接断了。人脸识别教程链接断了。