Фильтр синего изображения в python

#python

#python

Вопрос:

Я пытаюсь написать функцию, которая принимает пиксель в качестве параметра и инвертирует каждый цвет в пикселе, а затем возвращает новые значения цвета в виде кортежа. Помощь была бы очень признательна Вот мой текущий код:

 IMAGE_URL = "https://codehs.com/uploads/c709d869e62686611c1ac849367b3245"
IMAGE_WIDTH = 280
IMAGE_HEIGHT = 200

image = Image(IMAGE_URL)
image.set_position(70, 70)
image.set_size(IMAGE_WIDTH, IMAGE_HEIGHT)
add(image)

#################################################
# Write your function here. Loop through each pixel
# and set each pixel to have a zero blue value.
#################################################
def remove_blue():
    pass

# Give the image time to load
print("Removing Blue Channel ....")
print("Might take a minute....")
timer.set_timeout(remove_blue, 1000)
 

Комментарии:

1. Что, кажется, пошло не так?

Ответ №1:

 from PIL import Image
# open image
image = Image.open('pic.jpeg')
# show the image (optional)
image.show()
# load the image into memory
image_data = image.load()
# obtain sizes
height,width = image.size
# loop over and change blue value to 0
for loop1 in range(height):
    for loop2 in range(width):
        r,g,b = image_data[loop1,loop2]
        image_data[loop1,loop2] = r,g,0

image.save('changed.jpeg')
 

Соответствующая функция будет

 def remove_blue(image):
   
   image = Image.open('pic.jpeg')
   # show the image (optional)
   image.show()
   # load the image into memory
   image_data = image.load()
   # obtain sizes
   height,width = image.size
   # loop over and change blue value to 0
   for loop1 in range(height):
       for loop2 in range(width):
           r,g,b = image_data[loop1,loop2]
           image_data[loop1,loop2] = r,g,0
 # return image
   image.save('changed.jpeg')
 

Комментарии:

1. Спасибо за помощь, но у меня все еще возникают проблемы. Куда мне поместить код?

2. Трассировка (последний последний вызов): Файл VFS.browser.timer.py строка 13, в f msg='{0.info }n{0.__class__.__name__}: {0.args[0]}’.format(exc) Ошибка типа: в remove_blue отсутствует 1 позиционный аргумент: ‘изображение’

3. Вам нужно указать файл изображения, попробуйте remove_blue(IMAGE_URL)

4. Трассировка (последний последний вызов): Файл VFS.browser.timer.py строка 13, в f msg='{0.info }n{0.__class__.__name__}: {0.args[0]}’.format(exc) Ошибка типа: в remove_blue отсутствует 1 позиционный аргумент: ‘IMAGE_URL’