例如,考慮下面的圖像,它是一個unint8格式的jpeg。爲什麼圖像不能完全從邏輯轉換回
在我的代碼需要對圖像處理爲unint8
,然後將其轉換爲logical
,然後在unint8
格式再次使用它。但顯然沒有辦法讓它恢復到原來的狀態。例如,考慮下面的代碼:
image = imread('W1\Writer1_03_02.jpg');
bw_normal = im2bw(image, 0.1);
imshow(bw_normal);
它產生如下圖像:
Whichy表明im2bw
在0.1閾完美地工作。但是如果我將它轉換爲logical
,然後回到unint8
,然後執行上面的命令,結果會非常不同。
image = imread('W1\Writer1_03_02.jpg');
image = im2bw(image,graythresh(image));
image = im2uint8(image);
bw_normal = im2bw(image, 0.1);
imshow(bw_normal);
在這種情況下產生的結果是:
基本上如預期沒有奏效。即在每個閾值遞增或遞減時,圖像中顯示的單詞應分別增大或減小。但是,一旦它轉換爲邏輯,然後再轉回,它就不會發生這種情況。
根據我期望它隨着閾值變化的增長和縮小的方式,是否可以將邏輯圖像轉換回與im2bw
一起使用的方式?
從灰色/彩色轉換爲二進制圖像時,基本上會丟失信息,這至少是您無法接近原始圖像的原因之一。但我認爲,就你而言,你只需要平滑一點二進制圖像,看起來足夠接近。 – Divakar