簡體   English   中英

如何在Android中將位圖圖像轉換為二進制圖像?

[英]How to convert bitmap image to binary image in android?

我需要將硬件的位圖轉換為二進制圖像,您對此一無所知嗎?

您是否正在尋找執行轉換的算法?

最簡單的方法是將每個像素值與固定閾值進行比較:如果像素值小於閾值,則對應的輸出像素為黑色(0),否則為白色(1)。

如果您希望自動確定閾值,則可能需要實施Otsu的方法。 當您不能對圖像中的像素分布做出太多假設時,該方法總體上是正確的。

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

作為參考,這在Mathematica中是這樣的:Otsu方法的Binarize[image, threshold]Binarize[img]

在此處輸入圖片說明

希望這可以幫助...

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

您可以使用位圖轉換功能並將其寫入輸出流,然后使用輸出流自行獲取字節數組,希望對您有所幫助

您可以查看將Java位圖轉換為字節數組的鏈接,可以將位圖轉換為二進制,然后可以查看byteArray的顯示圖像

也許這是你的代碼

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

嘗試這個

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM