所以我有一张图像,我有一个网格点,我想从图像中得到RGB值。我正在使用PIL的getpixel()并得到错误:
return self.im.getpixel(xy)
TypeError: an integer is required
我认为问题在于getpixel中的xy是x和y值的数组,而不是整数。但是我如何让它给予我所有这些点的所有rgb值呢?我是否使用getpixel以外的东西?我的代码看起来像这样:
xm = np.linspace(xmin, xmax, inputx)
ym = np.linspace(ymin, ymax, inputy)
xmr, ymr = np.meshgrid(xm, ym)
r, g, b = list(image1.getpixel((xmr, ymr)))
当我尝试打印r,g,B时会出现错误。我如何让它给予我一个RGB值的数组在所有我给定点的meshgrid?
1条答案
按热度按时间ryevplcw1#
你得到了一个错误,因为
getpixel
方法一次需要一个像素。一个更简单的替代方法是将图像转换为numpy数组并获取值:但是,如果您确实希望使用
getpixel
,则可以执行以下操作: