这是我的问题。我有一个bmp文件,并尝试获取图片的RGB值。我用4种不同的方法来完成这个任务,在Matlab中进行imread,在R,photoshop中打包“bmp”和“pixmap”。但是,对于相同的像素点,这4种方法返回的值稍有不同。为什么Photoshop在Matlab和R中有不同的RGB值?
在包 “BMP” 中的R imread()在Matlab和read.bmp()返回相同的值:(155,92,75)
getChannels()中包 “像素映像”在R收益(0.6431535, 0.3817427,0.3112033):他们似乎是正常化。将图1中获得的值除以图片 ([0,241])中红色通道的范围得到完全相同的值。绿色和蓝色通道的范围是[0,187]和[0,176]。
Photoshop返回稍微不同的值:(160,95,77)。
为什么这些方法返回不同的RGB值?任何帮助将不胜感激。
更新信息:
原始图像(预览开在苹果牛和PS): original
Matlab的imread()和imshow()图像: Matlab version
而且我发现,如果我在photoshop中将颜色模式从RGB转换为CYMK,pic看起来与Matlab中的相同。
你能上传实际图片吗? – Suever
可能的重复http://stackoverflow.com/questions/38468519/reading-grayscale-image-in-matlab/38469926#38469926 –
我觉得原始的BMP图像没有以RGB24色彩格式存储(每个颜色通道一个字节) 。试试:I = imread('QMWLH.bmp');显示尺寸(I),确保尺寸为640x360x3。保存我imwrite(我,'RGB.bmp');现在在Photoshop中打开RGB.bmp,并检查值。也可能是伽马相关... – Rotem