一、代碼
Rect boundRect(0,0,0,0);
Mat im_boundRect(im_bgr.rows, im_bgr.cols, CV_8UC3);
im_bgr(boundRect).copyTo(im_boundRect);
二、代碼
Mat im_boundRect = im_bgr(boundRect);
在Android JNI開發中選擇代碼一問題解決,但是使用代碼方式二,算法識別結果爲空;在VS中,這兩種方法都是可以的,這一塊需要分析一下爲什麼會有差異。此外關於OpenCV中ROI的操作,有很多比較好的寫法,OpenCV是很值得去好好研究一下的:
比如,需要實現尋找包裹輪廓的最小正矩形,boundRect = minRect.boundingRect();就可以輕鬆實現
for (auto &cnt : contoursMap)
{
cv::RotatedRect minRect = cv::minAreaRect(cnt.second); //contoursMap[1]
boundRect = minRect.boundingRect();
cv::Mat im_boundRect = im_bgr(boundRect);
......