簡體   English   中英

使用OpenCV和C ++從圖像中提取子圖像

[英]Extract sub-image from image using OpenCV and C++

我正在嘗試從openCV和C ++的RGB圖像中獲取子圖像。 我已經看過有關該主題的其他主題,但對我而言卻無效。

這是我使用的代碼:

Mat src = imread("Images/00011_00025.ppm");
Rect crop(1, 1, 64, 67);
Mat rez = src(crop);

圖片尺寸為64x67,因此我不明白為什么在控制台中出現以下錯誤:

斷言失敗(0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi。高度<= m。行)

關於此錯誤的原因有什么想法?

Rect crop(1, 1, 64, 67);

矩形的左上角位於位置(1,1),其大小設置為64x67。

Mat rez = src(crop);

使用此矩形裁剪圖像時,您的邊界越用越多,因為矩形的偏移量為一個像素,但與要裁剪的圖像大小相同。 您可以手動考慮寬度和高度的偏移量,或者,這是我首選的裁剪方法,可以使用cv :: Range

使用范圍,您可以定義行和列的跨度以執行裁剪:

cv::Range rows(1, 64);
cv::Range cols(1, 67);
Mat rez = src(rows, cols);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM