如何将灰度图像以matrix或dataframe的forms转换为相应的像素值(0-1)?

在R编程中,我想将灰度图像以matrix或数据框的forms转换为相应的像素值,如果需要,我也希望将数据存储在excel文件中。这个转换过程将帮助我实现和分析聚类方法以每个像素的强度的forms显示在图像上。 许多人提出了biOps封装,用于这种灰度图像到像素matrix的转换,但不幸的是这个软件包不再受R的支持(link:cran.r-project.org/web/packages/biOps/index.html)。 我也尝试了EBImage包,当我从摘要使用“imageData()”提取灰度图像的像素值,但值存储为三维值的数组,但我想使matrix或dataframe,其中每个像素对应一个相应的值为0到1.可以build议R中的任何方法。 作为参考我共享MRI扫描图像的excel文件。 MRI扫描图像:这是我希望我的图像被转换的方式

你可以在这里下载excel文件 ( https://d37djvu3ytnwxt.cloudfront.net/assets/courseware/v1/e4d303da53c93dfaca745ad1236e7d53/asset-v1:MITx+15.071x_3+1T2016+type@asset+block/tumor.csv )

将灰度图像文件加载到R中作为3Darrays而不是2Dmatrix的原因在于其像素强度在RGB颜色通道中被复制。 解决方法是使用函数channel将数据转换为灰度表示。 这将给你在[0:1]范围内的像素强度的二维matrix。 然后,您可以使用常规write.csv函数将图像数据保存到.csv文件中。 您可能想要执行转换,将R所使用的列主要顺序表示forms转换为行主要顺序。

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