在矢量中存储50个图像中的像素值

问题描述 投票:0回答:1

我需要从图像的特定点提取特征。目前,我只针对一张图像执行此操作,但是要手动进行逐帧操作要进行大量工作。要提取简单的像素强度级别,我可以这样做:

print(img[45, 80]) 
print(img[45, 100]) 
print(img[50, 65]) 
print(img[50, 110])
print(img[40, 110])
print(img[35, 90])
print(img[25, 90]) 
print(img[25, 110]) 
print(img[64, 89]) 
print(img[25, 65]) 
print(img[40, 65]) 
print(img[65, 60]) 
print(img[65, 120]) 
print(img[82, 75]) 
print(img[82, 105]) 
print(img[78, 88]) 
print(img[110, 90])
print(img[90, 89]) 
print(img[100, 65]) 
print(img[100, 110])

values = [245, 247, 199, 199, 210, 213, 216, 196, 225, 199, 189, 189, 195, 221, 225, 201, 221, 201, 216, 222]
new_values = np.reshape(values,(20,1))

[基本上,我手动验证对我的应用程序更有用的像素,并将其存储在矢量中。尽管这些坐标对于所有面部图像都是恒定的,但是我想做的是能够一次加载所有50张图像,并打印它们的值或/和将它们存储在矢量中。

我目前正在加载这样的图像:

from os import listdir
from PIL import Image as PImage

def loadImages(path):

    imagesList = listdir(path)
    loadedImages = []
    for image in imagesList:
        img = PImage.open(path + image)
        loadedImages.append(img)


    return loadedImages


imgs = loadImages('C:/Dataset/Frames/')

for img in imgs: 
    imgplot = plt.imshow(img)
    print(img[45, 100])
    plt.show()

不仅,它不起作用,它还会给我错误:

TypeError:'TiffImageFile'对象不是

可订阅

python image opencv matplotlib feature-extraction
1个回答
0
投票

您可能想用print(img[45, 100])代替print(img.getpixel((45, 100)))

参考:https://pillow.readthedocs.io/en/stable/reference/Image.html

© www.soinside.com 2019 - 2024. All rights reserved.