int temp = -256;
dst1.data[10] = temp;
int a = dst1.data[10];
cout << int(dst1.data[10]) << " " << a << endl;
//result:
// 0 0
//
int temp = -260;
dst1.data[10] = temp;
int a = dst1.data[10];
cout << int(dst1.data[10]) << " " << a << endl;
//result:
// 252 252
//
int temp = 600;
dst1.data[10] = temp;
int a = dst1.data[10];
cout << int(dst1.data[10]) << " " << a << endl;
//result:
// 88 88
新的灰度值为:
a<0时,a + N*256(N=1,2,3...),直到a>0为止;
a>0时,a - N*256(N=1,2,3...),直到a<256为止.
Mat::data
参考博客:https://blog.csdn.net/kelvin_yan/article/details/48315175
Mat::data的默认类型
Mat::data的默认类型为uchar*,但很多时候需要处理其它类型,如float、int,此时需要将data强制类型转换,如:
-
Mat src(1000,1000,CV_32F);
-
float* myptr = (float*)src.data;
无论Mat的type是何种类型,Mat::data均为uchar*