我有一个byte
包含 0 和 -1 (255)系列的数组。这是使用 Otsu 算法进行二值化的结果。我用了:
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inDither = true;
opt.inPreferredConfig = Bitmap.Config.RGB_565; // I have tried ARGB_8888 aswell
Bitmap out = BitmapFactory.decodeByteArray(data, 0, data.length, opt);
不幸的是,它返回 null。就像其他关于BitmapFactory.decodeByteArray()
.
我已经测试了其他方法,例如嵌套 for 循环,它可以工作,但处理时间太长,尤其是对于大图像。
这是我目前用来生成二值化的data
:
ptr = 0;
while (ptr < srcData.length)
{
monoData[ptr] = ((0xFF & srcData[ptr]) >= threshold) ? (byte) 255 : 0;
ptr ++;
}
我希望你能引导我找到更好的方法来解决这个问题。谢谢!