但OpenCV裡cvGet2D和cvSet2D的第一、二個參數(idx0, idx1)卻不是這個意思,
以數學方式來看的話是指(idx1, idx0),因為以程式設計中讀取一維陣列是
「有幾個row」乘上「img的寬度」加上「最後一列中的第幾個」
= idx0 * img->width + idx1
cvGet2D(source image, colume-th, row-th)
CODE:
for(int j=0; j<height; j++){
for(int i=0; i<width; i++){
CvScalar scalar_old = cvGet2D(img, j, i);
// 抓出img(i, j)的 pixel值
CvScalar scalar_new = cvScalarAll(scalar_old.val[0]);
// 把img(i, j).b值 設成新的scalar的bgr值
cvSet2D(img, j, i, scalar_new);
// 把新的scalar丟回img
}
}
沒有留言:
張貼留言