Opencv灰度图像

时间:2018-01-11 06:47:42

标签: java android opencv

public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
    inputFrame.gray();
}

这会返回一个垫子。如果我将其转换为字节数组,则最大值为127,最小值为-128。我想把它转换为min 0和max 255.这可能吗???

如果是这样怎么样? 我试着编写一个for循环,并在字节数组中为每个元素添加128。虽然它导致字节数组的最小值为-105,最大值为107。

任何想法??

for(int k=0;k<grayScaleImageArray.length;++k){
        grayScaleImageArray[k]= (byte) (grayScaleImageArray[k]+128);
    }

1 个答案:

答案 0 :(得分:0)

正如Micka在评论中所说,你必须使用不同的类型,即8位无符号。

uchar[] unsignedArray = new uchar[signedArray.length];
for(int k = 0; k < signedArray.length; ++k)
{
  unsignedArray[k] = uchar((int)(signedArray[k]) + 128);
}