2016-09-26 25 views
0

在R編程中我想將灰度圖像以矩陣或數據框的形式轉換爲相應的像素值,如果需要,我也希望將數據存儲在excel文件中。這個轉換過程將幫助我實現和分析以每個像素的強度的形式對圖像進行聚類。許多人建議使用biOps軟件包對這種灰度圖像進行像素矩陣轉換,但不幸的是這個軟件包不再受R的支持(鏈接:cran.r-project.org/web/packages/biOps/index.html)。當我使用「imageData()」從摘要中提取灰度圖像的像素值時,我也嘗試使用EBImage包,但值被存儲爲三維數組值,但是我想製作矩陣或數據幀,其中每個像素對應於相應的值爲0到1.可以建議R中的任何方法。作爲參考我分享MRI掃描圖像的excel文件。 MRI scan Image:this is how I want my image to be converted如何將灰度圖像轉換爲矩陣或數據框形式的各個像素值(0-1)?

你可以下載Excel文件在這裏https://d37djvu3ytnwxt.cloudfront.net/assets/courseware/v1/e4d303da53c93dfaca745ad1236e7d53/asset-v1:[email protected]+block/tumor.csv

+1

我無法在工作中檢查這一點,但它可能會導致您朝着正確的方向前進。 http://nielshorn.net/prog/vba/vbaXL_bmp2xls.php或者可能這個http://stackoverflow.com/questions/27489947/convert-jpg-to-greyscale-csv-using-r –

+0

這是相當廣泛的有被關閉的危險。將值轉換爲0或1的標準是什麼?你有沒有嘗試打包'raster'? –

+0

我試過光柵,但沒有運氣。 –

回答

1

之所以你的灰度圖像文件加載到R作爲3D陣列,而不是一個二維矩陣,它的像素強度跨越RGB顏色通道複製。解決方法是使用函數channel將數據轉換爲灰度表示。這將爲您提供[0:1]範圍內的像素強度二維矩陣。然後,您可以使用常規的write.csv函數將圖像數據保存到.csv文件中。您可能想要進行換位,以便將R所使用的列主要訂單表示轉換爲行主要訂單。

library("EBImage") 

img <- readImage("sample.jpg")  
img <- channel(img, "grey") 
write.csv(t(img), "sample.csv", row.names = FALSE) 
+0

令人驚歎!非常感謝,它爲我工作。我幾乎在這一天掙扎着。 –