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

发布于 2024-11-01 23:25:05 字数 32 浏览 0 评论 0原文

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

I need to convert bitmap to binary image for my hw.Do u know anything about that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

拥醉 2024-11-08 23:25:05

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

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

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

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

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

在此处输入图像描述

Are you looking for an algorithm to perform the conversion?

The easiest way is to compare each pixel value with a fixed threshold: if the pixel value is less than the threshold, the corresponding output pixel is black (0), else it is white (1).

If you wish to determine the threshold automatically, you may want to implement Otsu's method. That method does a correct job overall when you can't make too many assumptions about the pixels distribution in your image.

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

As a reference, that's how it looks like in Mathematica:
Binarize[image, threshold], and Binarize[img] for Otsu's method.

enter image description here

我爱人 2024-11-08 23:25:05

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

You can use the bitmap convert function and write it to an output stream and then use the output stream to get for yourself the byte array
I hope that helps

海风掠过北极光 2024-11-08 23:25:05

你可以看看这个链接converting Java bitmap to byte array,它可以转换位图到二进制,然后你应该看看 显示来自 byteArray 的图像

you can look this link converting Java bitmap to byte array, it can convert bitmap to binary, can then you should look at display image from byteArray

诗化ㄋ丶相逢 2024-11-08 23:25:05

希望这有帮助...

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

Hope this helps...

Bitmap bitmapObtained =//get your bitmap
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmapObtained.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] byteArray = stream.toByteArray();
剧终人散尽 2024-11-08 23:25:05

也许这是你的代码

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));
}

试试这个

perhaps this is your code

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));
}

try this

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文