2017-01-19 10 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.widthと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()