2015-09-23 216 views
1

I,其在閱讀「R」,並試圖print(Input_Image)用R進行圖像處理(包EBImage)轉換爲8位灰度

我有一個輸入「JPEG」圖像,使我有以下輸出的圖像

colorMode : Color 
    storage.mode : double 
    dim   : 3888 2592 3 
    frames.total : 3 
    frames.render: 1 

現在,我想此顏色類型的輸入圖像轉換爲8位灰度圖像類型。

我用盡手動和互聯網搜索,但無法找到解決方案。正如我預期的最終結果是8位,輸出灰度圖像的最大值將是255.

使用R EBImage中隨時可用的函數我只能得到類型雙意義值的灰度圖像是在範圍0和1.

回答

0

可以通過修改colorMode的屬性將圖像轉換成灰度。使用在評論中鏈接的文件,一個可以嘗試:

library("EBImage") 
img <- readImage("16_left.jpg") 

有了這個文件已經被讀取並存儲在img(假設JPEG文件是在工作目錄)。

writeImage(img,file="16_left_bw.png") 

> img 
Image 
colorMode : Color 
storage.mode : double 
dim   : 1279 853 3 
frames.total : 3 
frames.render: 1 
... 

現在圖像可使用

[email protected] <- Grayscale 

colorMode(img) = Grayscale 

轉換後的圖像然後可以被存儲爲PNG文件被轉換成灰度

在這個例子中三個圖像s的存儲在工作目錄,16_left_bw-0.png16_left_bw-1.png16_left_bw-2.png

這是第一個這些圖像:

enter image description here

根據與標準圖像瀏覽器的分析(這裏我用Ubuntu的ImageMagick的),圖像以8位格式存儲。該數據仍然存儲在雙格式和範圍從0到1

> range([email protected]) 
[1] 0 1 

,但僅使用256級: enter image description here

希望這有助於。

+0

不錯的工作示例!我遵循相同的命令將我的輸入彩色圖像類型轉換爲8位灰度。輸入圖像張貼在URL:http://postimg.org/image/wb7txoill/但無法實現8位灰度。輸出使用R的打印命令進行檢查和驗證。我確實錯過了純粹的技術。 – user2701513

+0

@ user2701513我使用你的文件更新了文章。我希望這有幫助。看起來,儘管灰度圖像的等級沒有明確地存儲在0到255的範圍內,但它們被分類以使得圖像被視爲使用0和255之間的等級的8位圖像。 – RHertel

+0

猜測,這裏的重要信息是**灰度圖像的等級沒有明確地存儲在0到255的範圍內**猜測我必須找到一種方法來轉換爲明確的0-255 8位範圍。 – user2701513

相關問題