我有Matces數據訪問問題。我在圖片上執行操作,並且需要分離地訪問每個像素。 我必須對簡單類型(float,int等)進行必要的操作。 我accesing數據的方法是象下面這樣:OpenCv墊到陣列訪問
for (int idx = 0; idx < image.rows; idx++) {
for (int idy = 0; idy < image.cols; idy++) {
int color_tid = idx * image.cols * image.channels() + idy * image.channels();
uint8_t blue = image.data[color_tid];
uint8_t green = image.data[color_tid + 1];
uint8_t red = image.data[color_tid + 2];
float pixelVal = (int) blue + (int) green + (int) red;
(...)
}
}
這種方法是否正常工作只方形的圖像(N×N像素),但對於N×M個有正方形區域(小刃)之外的異常。 有誰知道任何其他方式來訪問圖片墊的數據? 示例圖片(正確的結果):
異常(我的問題)
沒有看到所有的代碼,很難說這是怎麼回事。然而,在你的循環內,你可以寫:'Vec3b v = image(row,col); float pixelVal = v [0] + v [1] + v [2];'。還要記住_rows_是_y_座標,而_cols_是_x_。所以你可能只是換了你的指數。 – Miki
Vec3b v不是簡單的類型...我必須使用image.data –
你**必須** ....是功課還是什麼? – Miki