我通过调用DetectMultiScale得到一个Rect vector :
face_cascade.detectMultiScale(ImgGray,faces,1.1,2,0|CV_HAAR_SCALE_IMAGE);
但是Compare需要Mat:
compare(OriginalImg,roi,dist,CMP_EQ);
如何将Rect转换为Mat进行比较,或者有没有办法比较Rect?
最佳答案
如果要比较2张图像,则compare
函数将2 cv::Mat作为第一个输入。
要从ImgGray
获取投资返回率,您必须从detectMultiScale
提供的ROI中提取新的Mat
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);
OriginalImg
,dist
和roi
具有相同的大小和类型。这样可以解决您的问题吗?
关于opencv - Opencv比较Rect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20275508/