[英]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.