[英]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.