我需要將cv::Mat
圖像(源)複製到另一個(目標)cv::Mat
圖像的ROI。我發現this reference,但它似乎不適合我的情況。 你有什麼指針我怎麼可以用OpenCV C++接口來做到這一點?將cv :: Mat複製到另一個ROI中
40
A
回答
64
OpenCV的2.4:
src.copyTo(dst(Rect(left, top, src.cols, src.rows)));
OpenCV的2.X:
Mat dst_roi = dst(Rect(left, top, src.cols, src.rows));
src.copyTo(dst_roi);
6
爲我做的工作是這樣的:基於
Mat imgPanel(100, 250, CV_8UC1, Scalar(0));
Mat imgPanelRoi(imgPanel, Rect(0, 0, imgSrc.cols, imgSrc.rows));
imgSrc.copyTo(imgPanelRoi);
imshow("imgPanel", imgPanel);
waitKey();
我使用opencv 2.4.9 安德烈的回答。
5
除了或更正上面的回答,如果你想開Mat
一個較小的區域複製到另一個Mat
,你應該做的:
src(Rect(left,top,width, height)).copyTo(dst);
相關問題
- 1. 將cv :: Mat複製到CMSampleBufferRef
- 2. 將圖像數據複製到cv :: mat
- 3. 將cv :: Mat複製到另一個會創建「斷言失敗0 <= _colRange.start && ..」
- 4. SuperImpose一個cv :: mat圖像另一個
- 5. 如何將從/到QImage的ROI轉換爲/從cv :: Mat?
- 6. 如何將Mat的一行復制到OpenCv中的另一個Mat的列中?
- 7. 需要複製一個圖像到另一個圖像ROI
- 8. 將圖像複製到ROI
- 9. 將數據從cv :: Mat複製到CvMat並反之亦然
- 10. 如何將圖像矢量中的單個圖像複製到臨時cv :: Mat?
- 11. cv :: Mat aaa()之間的區別和cv :: Mat aaa = cv :: Mat();
- 12. OpenCV/C++:複製Mat中的行/列到另一個?
- 13. 將cv :: Mat寫入二進制文件?
- 14. 如果a是一個cv :: Mat和cv :: Mat b = a.row(1),那麼這兩個cv :: Mat實例有什麼區別?
- 15. OpenCV C++,使用cv獲取感興趣區域(ROI):: Mat
- 16. OpenCV 3 - 如何正確提取cv :: Mat的ROI?
- 17. 錯誤將cv :: mat轉換爲cv :: arr
- 18. OpenCV:爲什麼ROI Mat失真?
- 19. 檢查一個cv :: Point是否在一個cv :: Mat內
- 20. 如何將1D int數組的元素複製到Open CV java中的MxN Mat?
- 21. 將HBITMAP轉換爲cv :: Mat
- 22. 將cv :: Mat傳遞給labview
- 23. 將cv :: Mat轉換爲SDL_Texture
- 24. 將一個NSString複製到另一個
- 25. 將一個plist複製到另一個
- 26. 將一行cv :: Mat轉換爲int
- 27. 將SSBO複製到另一個SSBO中
- 28. 將TextureView複製到另一箇中
- 29. cv :: bitwise_not cv :: Mat矩陣
- 30. cv :: Mat到QImage的轉換
的感謝!我這樣做,並且工作得很好:bboxImage.copyTo(destImage.colRange(startCol,startCol + bboxImage.cols).rowRange(startRow,startRow + bboxImage.rows)); – theosem
產生'沒有匹配函數調用'cv :: Mat :: copyTo(cv :: Mat)' viewtest2.cpp:172:61:備註:候選者是: /usr/include/opencv2/core/core。 hpp:1651:10:注意:OpenCV 2.4.6中的void cv :: Mat :: copyTo(cv :: OutputArray)const。然而,第二種解決方案可以工作,但是隻有src纔會生成圖像。 – pbond
以前版本的opencv有什麼區別?爲什麼代碼不同? (Rect(left,top,src.cols,src.rows));' – nkint