2017-01-19 2 views
0

Я хочу написать программу, которая сравнивает 2 изображения (малая и большая), чтобы проверить, находится ли маленький в большом.Python 3.5 - Pillow - Pixel Acces

Зная, что изображение может быть по сравнению с массивом, я написал следующий алгоритм:

big_image = [ 
    [1,2,3,4,5,6,7,8,9], 
    [10,11] 
] 

small_image = [ 
    [1,2], 
    [10,11] 
] 
big_result = [] 
def check(small_image, big_image): 
    for i in range(len(small_image)): 
     for j in range(len(small_image[i])): 
      if small_image[i][j] == big_image[i][j]: 
       result = (i,j) 
       big_result.append(result) 
    return(big_result) 

print(check(small_image, big_image)) 

Он распечатанный: [(0, 0), (0, 1), (1, 0), (1, 1)], как и предполагалось.

После этого я установил модуль подушки для проверки алгоритма на 2 фактических изображения (формат .bmp).

Мой вопрос в том, как получить доступ к пикселам на изображении и как получить изображение.трассы и image.height, чтобы я мог проверить свой алгоритм.

Я проверил официальный учебник по подушке (http://pillow.readthedocs.io/en/3.1.x/handbook/tutorial.html), но все, что я мог найти, это как обернуться и похудеть, обрезать его и т. Д.

ответ

0

Вы можете использовать width, height = im.size узнать ширину и высоту, как в следующем примере:

from PIL import Image 
im = Image.open("lena.bmp") 
width, height = im.size 
print(width, height) 

Вы можете найти больше пример согласно this

1

Для размеров изображения вы можете сделать:

import PIL 
from PIL import Image 

img = Image.open('Imagename.jpg').convert('RGB') 
width, height = img.size 

Для доступа к пикселям PIL имеет .load(), например:

pixels = img.load() 
for x in range(width): 
    for y in range(height): 
     pixels[x, y] = (0, 100, 200) #an rgb value 
img.show()