簡體   English   中英

Python 3.5-枕頭-像素配件

[英]Python 3.5 - Pillow - Pixel Acces

我想編寫一個比較2張圖像(小圖像和大圖像)的程序,以檢查小圖像是否在大圖像內。

知道可以將圖像與數組進行比較后,我編寫了以下算法:

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 ),但是我所能找到的就是如何轉身並成像,裁剪等。

對於圖像尺寸,您可以執行以下操作:

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()

您可以使用width, height = im.size來查找寬度和高度,如以下示例所示:

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

您可能會根據找到更多示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM