从python的image模块访问图像坐标,或者作为numpy数组访问并存储图像坐标,两者之间有什么区别?
我使用图像模块在python中读取了一个图像,并将其转换为numpy数组,如下所示从python的image模块访问图像坐标,或者作为numpy数组访问并存储图像坐标,两者之间有什么区别?,python,image,Python,Image,我使用图像模块在python中读取了一个图像,并将其转换为numpy数组,如下所示 im=Image.open(infile) imdata = scipy.misc.fromimage(im) im.getPixel(x,y) 第一个问题是x是否属于行号,y是否属于列号。它的视觉顺序与我们在屏幕上看到的相同,还是与保存到磁盘或其他东西的顺序相同 当它作为numpy数组使用时,如何访问像素值。它提供与im.getPixel()相同的像素还是不同的像
im=Image.open(infile)
imdata = scipy.misc.fromimage(im)
im.getPixel(x,y)
第一个问题是x是否属于行号,y是否属于列号。它的视觉顺序与我们在屏幕上看到的相同,还是与保存到磁盘或其他东西的顺序相同
当它作为numpy数组使用时,如何访问像素值。它提供与im.getPixel()相同的像素还是不同的像素位置
第三个问题是,在将此图像保存到磁盘(如PNG)时。。。访问和写入文件的顺序应该是什么
非常感谢
谢谢来自图像
返回的numpy数组是维度[宽度、高度、nr_通道]
的状态,其中nr_通道
是不同的色带/通道,存储在第三维中,使得灰色图像是MxN、RGB图像MxNx3和RGBA图像MxNx4
因此,要从数组中获取“像素”x,y(实际上是行x,高度y),您需要执行以下操作
pix = a[x,y,:]
和例如
r,g,b = pix[:3]
im.getPixel从同一位置(x,y)获取像素,但将其作为元组,例如,如果图像具有rgb波段,则为
(r,g,b)
。
这个方法比较慢,;如果需要从Python处理图像的较大部分,可以使用像素访问对象(通过
im.load()
重试),也可以使用im.getdata()
方法。您是否可以指定访问和写入的顺序?只需将数据设置为图像对象,然后执行im.save()
就是您想要知道的吗?