如何在android中将位图图像转换为二进制图像?

时间:2011-04-14 23:19:05

标签: android image-processing bitmap

我需要将位图转换为我的hw的二进制图像。你知道的吗?

5 个答案:

答案 0 :(得分:3)

您是否正在寻找执行转换的算法?

最简单的方法是将每个像素值与固定阈值进行比较:如果像素值小于阈值,则相应的输出像素为黑色(0),否则为白色(1)。

如果您想自动确定阈值,您可能需要实现Otsu的方法。当您无法对图像中的像素分布做出太多假设时,该方法可以完成正确的工作。

http://en.wikipedia.org/wiki/Otsu%27s_Method

作为参考,这就是它在Mathematica中的样子: 对于Otsu的方法,Binarize[image, threshold]Binarize[img]

enter image description here

答案 1 :(得分:0)

您可以使用位图转换功能并将其写入输出流,然后使用输出流自行获取字节数组 我希望有帮助

答案 2 :(得分:0)

您可以查看此链接converting Java bitmap to byte array,它可以将位图转换为二进制,然后您应该查看display image from byteArray

答案 3 :(得分:0)

希望这会有所帮助......

Bitmap bitmapObtained =//get your bitmap
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmapObtained.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] byteArray = stream.toByteArray();

答案 4 :(得分:-1)

也许这是你的代码

imageID = cursor.getString(columnIndex);
              //  uri = Uri.withAppendedPath(Media.EXTERNAL_CONTENT_URI, "" + imageID);
                Log.v("dklfdlk",imageID);
                bitmap = BitmapFactory.decodeFile(imageID);
if (bitmap != null) {
                    newBitmap = Bitmap.createScaledBitmap(bitmap, 78, 78, true);
                    bitmap.recycle();
                    if (newBitmap != null) {
                        publishProgress(new LoadedImage(newBitmap));
}

试试这个