给定两个图像,我需要检测这两个图像之间是否存在平移偏移。我只能使用numpy和PIL。 This post展示了如何使用PIL应用(x,y)转换,但还没有找到类似的方法来检测转换。 根据我所读到的,互相关似乎是解决方案的一部分,还有numpy.correlate函数。但是,我不知道如何使用此函数的输出来检测水平和垂直平移坐标。 first image second image
我在一个目录中混合了3通道灰度和彩色图像,我想在numpy中测量RGB图像在经验上有多少灰度,并且可以非常有效地计算出来。
我知道如果R==G==B,我有一个灰度像素,如果每个像素的R,G,B不相等,我就有一个彩色像素。我可以这样说,灰度是像素的灰度级与彩色的比例。所有真正的灰度图像都应该有一个分数== 1。
我做了一个在PIL中起作用的愚蠢的指标:
>>> from PIL import Image
>>> im = Image.open(filename)
>>> sum([1 for pixel in im.getdata() if
我正在为一个大学项目做痣的图像处理工作,我想创建一个量化图像的翻转副本。问题是我不能翻译图像。我需要对其进行平移,以使分子的中心与图像的中心重合。我尝试使用numpy roll函数,如下所示: Image translation using numpy 但是它返回了这个错误: TypeError: slice indices must be integers or None or have an __index__ method 我不知道是什么原因造成的。我还找到了一个名为Image.AFFINE的PIL函数,但我不知道如何使用它来移动所需增量的图像。下面的图片就是我要翻译的图片。蓝色的十
我的主要问题在这里解释:
具体来说,我想知道如何从相关矩阵中找到峰值,以及如何解释这个值。从链接中,对感兴趣的人详细地解释了整个问题,但主要要知道的是,我试图了解一个图像相对于另一个图像(另一个图像的稍微修改的版本)被翻译和旋转的距离。我试图使用相位相关来实现这一点,这给了我一个相关矩阵(类型为numpy数组)作为结果。我试着在关联矩阵上使用argmax(),它给了我一个数字(215),它对我没有任何意义。我希望有两个数字,其中一个表示平移中的偏移量,另一个表示图像相对于另一个的旋转。
简而言之:如何在相关矩阵(Python中)中找到峰值?
import scipy as sp
from sc
当我尝试将PNG类型的PIL图像转换为OpenCV图像时,PNG处的透明背景变为黑色背景。如何在OpenCV图像对象中保持透明背景。
这是代码片段:
# PIL Image object which holds a transparent background png image.
pil_img = Image.open(ioFile).convert('RGBA')
pil_img.show()
# I use numpy to convert the pil_image into a numpy array
numpy_image = np.array(pil_im
我刚接触python,在导入一个导入numpy、PIL和os包的模块时遇到了问题。我会尽量把我的问题弄清楚
因此,我有一个模块让我们称之为preprocessing.py,在这个模块中,我编写了一个类来处理使用image从PIL导入的图像,并将其转换为numpy数组,因此结构如下所示(注意,method1将jpg转换为numpy数组)
- preprocessing.py
import numpy as np
import os
from PIL import Image
Class process_object:
method1
现在,我想使用这个模块,如下所示,我希望从proc
我有一个要转换为Python数组的.jpg图像,因为我实现了处理普通Python数组的处理例程。
似乎PIL图像支持到numpy数组的转换,根据我写的文档:
from PIL import Image
im = Image.open("D:\Prototype\Bikesgray.jpg")
im.show()
print(list(np.asarray(im)))
这将返回一个numpy数组列表。此外,我还尝试了
list([list(x) for x in np.asarray(im)])
它不会返回任何东西,因为它失败了。
如何从PIL转换为数组,或者简单地从numpy
我有3个分区图像保存为一个多页的tif文件。我试着用PIL(low)读取它,它检测到正确的帧数,但是当我将它转换为numpy时,它会忽略框架,只转换单个页面/层。
from PIL import Image
import numpy as np
pil_ = Image.open(path)
pil_.size # this outputs (1024, 512)
pil_.n_frames # this outputs the correct number of frames i.e. 21
num = np.array(pil_)
num.shape # this outputs (51
使用Python的PIL模块,我们可以将数字图像读取为整数的array,
from PIL import Image
from numpy import array
img = Image.open('x.jpg')
im = array(img) # im is the array representation of x.jpg
我想知道PIL如何将图像解释为array?首先,我尝试了这个
od -tu1 x.jpg
它确实给出了一个数字序列,但是PIL如何将彩色图像解释为3D数组?
简而言之,我的问题是,我想知道如何在不使用任何像PIL这样的模块的情况下获得彩色图像的数
我正在尝试使用PIL读取图像(我认为它需要PIL,因为我正在处理文件句柄,当我尝试使用它读取图像时,OpenCV正在抛出一个错误)。
我想在图片里读到这样的;
pil_image = Image.open('sample_image.tif').convert('RGB') # it is in tiff format
# and convert to numpy array
img = np.asarray(pil_image)
plt.imshow(img)
然而,每当我试图转换图像并绘制它时,我就会得到一个空白的结果(如上面所示)。由于预处理
我正在尝试读取一个用16位数据类型编写的PNG图像文件.数据应转换为NumPy数组。但我不知道怎么读16位的文件。我试过使用PIL和SciPy,但是他们在加载时将16位数据转换为8位数据。谁能让我知道如何从16位PNG文件中读取数据,并将其转换为NumPy数组而不更改数据类型?
下面是我使用的脚本。
from scipy import misc
import numpy as np
from PIL import Image
#make a png file
a = np.zeros((1304,960), dtype=np.uint16)
a[:] = np.arange(960)