我得到矩形的矢量通過調用DetectMultiScale:opencv的比較Rects
face_cascade.detectMultiScale(ImgGray,faces,1.1,2,0|CV_HAAR_SCALE_IMAGE);
但是比較需要墊:
compare(OriginalImg,roi,dist,CMP_EQ);
如何轉換矩形到墊子上作出比較還是有比較Rects的方法?
我得到矩形的矢量通過調用DetectMultiScale:opencv的比較Rects
face_cascade.detectMultiScale(ImgGray,faces,1.1,2,0|CV_HAAR_SCALE_IMAGE);
但是比較需要墊:
compare(OriginalImg,roi,dist,CMP_EQ);
如何轉換矩形到墊子上作出比較還是有比較Rects的方法?
如果你想比較2張圖片,你的compare
函數以2 cv :: Mat作爲第一個輸入。 要採取的投資回報率從ImgGray
你必須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);
OriginalImg
,dist
和roi
具有相同的尺寸和類型來提取給出的ROI新墊。 這能解決你的問題嗎?
0 - 它是compare
,而不是detect
。它執行per element comparison
1-您不能將Rect轉換爲Mat,因爲一個定義了4點幾何形狀,而其他定義了3D矩陣。
2 - 您可以crop您Mat
用Rect
,然後使用新的Mat
內compare
3-人臉識別並非如此簡單。請查看this tutorial。
轉換成功,但出現以下錯誤: OpenCV錯誤:輸入參數的大小不匹配(該操作既不是'array op array'(其中數組具有相同的大小和相同類型),也不是'array op scalar',也不是'scalar op array')比較 – Simon
在比較方法的文檔中:src1:第一個輸入數組或標量,當它是一個數組時,它必須有一個通道。單通道矩陣,確保OriginalImg僅由1個通道組成。 By The Way C.Canberk Bac關於特徵識別並不是那麼簡單,即「比較」2 ROI。 – Marcassin