java中byte是有符號的,首先要把有符號的整數轉化一下呢?
public static Mat ConvertMatu8Tos32(Mat src)
{
if(src.type() != CvType.CV_8UC1 )
{
return null;
}
Mat ret = Mat.zeros(src.size(), CvType.CV_32SC1);
int rows = (int) ret.size().height;
int cols = (int) ret.size().width;
for( int i =0 ; i < rows; i++)
{
for(int j = 0 ; j < cols; j++)
{
byte byteData = MatUtils.getByteData(src, i, j);
int intData = 0xff & byteData;
ret.put(i, j, intData);
}
}
return ret;
}
轉化完畢,然後去斷點,你會發現所有的數據都一樣了