简体   繁体   English

枕头图像TypeError:需要一个整数(元组类型元组)

[英]pillow image TypeError: an integer is required (got type tuple)

I am a bit lost as to why this is happening any help would be greatly appreciated. 我有点迷茫,为什么会发生这种情况,将不胜感激。 So I am trying to take the median value of images and create a new image from them, but when trying to make newpix take in the values of my red green and blue median pixel the error: 因此,我尝试获取图像的中值并从中创建新图像,但是当尝试使newpix接受我的红色,绿色和蓝色中值像素的值时出现错误:

TypeError: an integer is required (got type tuple) TypeError:必须为整数(类型为元组)

happens 发生

from PIL import Image, ImageChops,ImageDraw,ImageFilter
import math
import glob
import os.path
from os import  listdir;
import numpy


image_list = []

redPixels = []
greenPixels = []
bluePixels = []

for filename in glob.glob(r"C:\Users\Elias\Desktop\Proj1\images\*.png"):
    im = Image.open(filename)
    image_list.append(im)
im = Image.open(open(r"C:\Users\Elias\Desktop\Proj1\images\1.png",'rb'))
width, height = im.size
print(height)
print (width)

result = Image.new('RGB', (width,height))
newpix = result.load()
for x in range (width):
    for y in range (height):
        for z in (image_list):
            red  = z.getpixel((x,y))
            blue = z.getpixel((x,y))
            green = z.getpixel((x,y))

            redPixels.append(red)
            greenPixels.append(green)
            bluePixels.append(blue)
        red = sorted(redPixels)
        blue = sorted(bluePixels)
        green = sorted(greenPixels)

        mid = int( (len(image_list)+1)/2)-1

        newRed = redPixels[mid]
        newBlue = bluePixels[mid]
        newGreen = greenPixels[mid]
        newpix[x,y] = (newRed,newGreen,newBlue)

result.save("Stacked.png")

Problem is at the lines 问题出线了

        red  = z.getpixel((x,y))
        blue = z.getpixel((x,y))
        green = z.getpixel((x,y))

        redPixels.append(red)
        greenPixels.append(green)
        bluePixels.append(blue)

red = z.getpixel((x,y)) will get all R,G,B data at x,y position, so it will be tuple like (255,255,255). red = z.getpixel((x,y))将在x,y位置获取所有R,G,B数据,因此将是类似(255,255,255)的元组。 Hence making changes to your code like below made it work: 因此,如下对代码进行更改即可使其正常工作:

from PIL import Image, ImageChops,ImageDraw,ImageFilter
import math
import glob
import os.path
from os import  listdir;
import numpy


image_list = []

redPixels = []
greenPixels = []
bluePixels = []

for filename in glob.glob(r"C:\Users\Elias\Desktop\Proj1\images\*.png"):
    im = Image.open(filename)
    image_list.append(im)
im = Image.open(open(r"C:\Users\Elias\Desktop\Proj1\images\1.png",'rb'))
width, height = im.size
print(height)
print (width)

result = Image.new('RGB', (width,height))
newpix = result.load()
for x in range (width):
    for y in range (height):
        for z in (image_list):
            rgb  = z.getpixel((x,y))
            redPixels.append(rgb[0])
            greenPixels.append(rgb[1])
            bluePixels.append(rgb[2])
        red = sorted(redPixels)
        blue = sorted(bluePixels)
        green = sorted(greenPixels)

        mid = int( (len(image_list)+1)/2)-1
        newRed = redPixels[mid]
        newBlue = bluePixels[mid]
        newGreen = greenPixels[mid]

        newpix[x,y] = (newRed,newGreen,newBlue)

result.save("Stacked.png")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Python TypeError:需要一个整数(得到类型元组)-(OpenCV / Numpy) - Python TypeError: an integer is required (got type tuple) - (OpenCV / Numpy) 类型错误:需要一个 integer(获取类型元组)日期时间 Python - TypeError: an integer is required (got type tuple) datetime Python TypeError:需要一个 integer(获取类型元组)<python><opencv><tesseract></tesseract></opencv></python> - TypeError: an integer is required (got type tuple) <python> <OpenCV> <tesseract> 类型错误:需要一个 integer(获取类型元组)|| python 中的网站阻止代码 - TypeError: an integer is required (got type tuple) || website blocking code in python 错误:必须为整数(元组类型为元组) - Error : an integer is required (got type tuple) Python TypeError:整数是必需的(got类型列表) - Python TypeError: an integer is required (got type list) Pyarrow:TypeError:需要一个整数(得到类型 str) - Pyarrow: TypeError: an integer is required (got type str) TypeError:在Tkinter中需要一个整数(got类型str) - TypeError: an integer is required (got type str) in Tkinter 类型错误:需要一个整数(得到类型时间戳) - TypeError: an integer is required (got type Timestamp) TypeError:需要一个 integer(获取类型 NoneType) - TypeError: an integer is required (got type NoneType)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM