Мой партнер и я начали работать над проектом создания программы манипуляции с использованием подушек.Наша текущая цель - приклеить маску логотипа яблока на другое изображение, чтобы изменить ее форму.
Подушка оказалась нелепо тяжелой для меня и для нее, и мы пришли к тому, что нам нужна помощь,
Вот текущий код, основанный на коде, который нам дал наш учитель.Каждый раз при запуске выдается ошибка ValueError: изображения не совпадают.Сообщение об ошибке также находится ниже.
from __future__ import print_function
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import os.path
import PIL
import PIL.ImageDraw
def apple_logo(original_image):
width, height = original_image.size
apple = PIL.Image.open('logo.jpg')
apple.resize((width, height))
apple.load()
result = PIL.Image.new('RGBA', original_image.size, (0,0,0,0))
result.paste(original_image, (0,0), mask=apple)
return result
def get_images(directory=None):
if directory == None:
directory = os.getcwd() # Use working directory if unspecified
image_list = [] # Initialize aggregaotrs
file_list = []
directory_list = os.listdir(directory) # Get list of files
for entry in directory_list:
absolute_filename = os.path.join(directory, entry)
try:
image = PIL.Image.open(absolute_filename)
file_list += [entry]
image_list += [image]
except IOError:
pass # do nothing with errors tying to open non-images
return image_list, file_list
def apple_logo_all(directory=None):
if directory == None:
directory = os.getcwd() # Use working directory if unspecified
# Create a new directory 'modified'
new_directory = os.path.join(directory, 'modified')
try:
os.mkdir(new_directory)
except OSError:
pass # if the directory already exists, proceed
# Load all the images
image_list, file_list = get_images(directory)
# Go through the images and save modified versions
for n in range(len(image_list)):
# Parse the filename
print(n)
filename, filetype = os.path.splitext(file_list[n])
# Round the corners with default percent of radius
curr_image = image_list[n]
new_image = apple_logo(curr_image)
# Save the altered image, suing PNG to retain transparency
new_image_filename = os.path.join(new_directory, filename + '.png')
new_image.save(new_image_filename)
apple_logo_all()
Сообщение об ошибке:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/usr/lib/python2.7/dist-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
202 else:
203 filename = fname
--> 204 __builtin__.execfile(filename, *where)
/home/ubuntu/workspace/1.4.7/Boen_Phaneendra_1.4.8.py in <module>()
67 new_image.save(new_image_filename)
68
---> 69 apple_logo_all()
/home/ubuntu/workspace/1.4.7/Boen_Phaneendra_1.4.8.py in apple_logo_all(directory)
61 # Round the corners with default percent of radius
62 curr_image = image_list[n]
---> 63 new_image = apple_logo(curr_image)
64
65 # Save the altered image, suing PNG to retain transparency
/home/ubuntu/workspace/1.4.7/Boen_Phaneendra_1.4.8.py in apple_logo(original_image)
16
17 result = PIL.Image.new('RGBA', original_image.size, (0,0,0,0))
---> 18 result.paste(original_image, (0,0), mask=apple)
19 return result
20
/usr/lib/python2.7/dist-packages/PIL/Image.pyc in paste(self, im, box, mask)
1124 if mask:
1125 mask.load()
-> 1126 self.im.paste(im, box, mask.im)
1127 else:
1128 self.im.paste(im, box)
ValueError: images do not match
Извините за беспокойство.Мы просто не можем понять это.
Спасибо:)
-J