我想从图像中得到RGB的像素值,我用Matlab和Python做过,但是我得到了不同的值,尤其是在绿色值。 如果你对这件事有什么建议,我将不胜感激。 谢谢 这是我用python编写的代码
from PIL import Image
import numpy as np
im = Image.open("lena.jpg")
imPixelVal = np.ones(np.size(im))
imSize = np.size(im)
for i in range (0,imSize[0]):
for j in range (0,imSize[1]):
ij = i , j
p = im.getpixel(ij)
imPixelVal[i,j] = (0.2989 * p[0]) + (0.5870 * p[1]) + (0.1140 * p[2])
print p[0]
print p[1]
print p[2]
这也是Matlab中的代码:
^{pr2}$
与Matlab相比,Python中读取图像的“方向”不同。
如果将python代码更改为:
而不是
^{pr2}$您将得到与Matlab中相同的输出。在
如果您希望Matlab给出与Python相同的结果,则必须在那里翻转}:
i
和{下面是我如何通过简单的调试来解决这个问题的:
.jpg
。在然后,我把Matlab循环改为
所以我只能得到前4个像素。
通过打印}的内容,我得到:
i
、j
和{现在,我在python中也做了同样的事情:
这给了我:
这表明Matlab和Python的顺序是不同的。
i
和{ij = i, j
改为{相关问题 更多 >
编程相关推荐