Untitled
unknown
plain_text
a year ago
2.5 kB
4
Indexable
from PIL import Image, ImageOps import matplotlib.pyplot as plt import numpy as np # Wczytaj obraz img = Image.open('obraz.jpg') # 1. Zastosuj metodę resize scales = [(0.15, 0.27)] resampling_methods = [Image.NEAREST, Image.LANCZOS, Image.BILINEAR, Image.BICUBIC, Image.BOX, Image.HAMMING] resized_images = [img.resize((int(img.width * s_w), int(img.height * s_h)), resample=method) for s_w, s_h in scales for method in resampling_methods] # Wyświetl obrazy i różnice fig, axs = plt.subplots(2, len(resized_images), figsize=(20, 10)) for i, resized_img in enumerate(resized_images): axs[0, i].imshow(resized_img) axs[1, i].imshow(np.abs(np.array(resized_images[0]) - np.array(resized_img))) plt.savefig('fig1.png') # Wczytaj obraz img2 = Image.open('balwan.png') # Zdefiniuj, gdzie są rękawiczki na obrazie glove1_box = (0, 240, 80, 320) glove2_box = (325, 185, 425, 520) # Wytnij rękawiczki z obrazu glove1 = img2.crop(glove1_box) glove2 = img2.crop(glove2_box) # Powiększ rękawiczki glove1 = glove1.resize((int(glove1.width * 1.5), int(glove1.height * 1.5))) glove2 = glove2.resize((int(glove2.width * 1.5), int(glove2.height * 1.5))) # Wklej powiększone rękawiczki z powrotem do obrazu img2.paste(glove1, glove1_box[:2]) img2.paste(glove2, glove2_box[:2]) # Zapisz obraz img2.save('balwan2.png') # 3. Obróć obraz angles = [60, -60] expand_options = [True, False] fill_colors = ['red', 'green'] rotated_images = [img.rotate(angle, resample=Image.BICUBIC, expand=expand, fillcolor=color) for angle in angles for expand in expand_options for color in fill_colors] # Wyświetl obrazy fig, axs = plt.subplots(1, len(rotated_images), figsize=(20, 10)) for i, rotated_img in enumerate(rotated_images): axs[i].imshow(rotated_img) plt.savefig('fig4.png') # 4. Obróć obraz wokół punktu (0,0) new_img = Image.new('RGB', (img.width * 2, img.height * 2), 'white') new_img.paste(img, (img.width // 2, img.height // 2)) rotated_img = new_img.rotate(-30, resample=Image.BICUBIC, expand=True) rotated_img.save('obrot.png') # 5. Przekształcenia Image.TRANSPOSE i Image.TRANSVERSE # Image.TRANSPOSE to obrót o 90 stopni w prawo, a następnie Image.FLIP_LEFT_RIGHT transpose_img = img.rotate(-90).transpose(Image.FLIP_LEFT_RIGHT) # Image.TRANSVERSE to obrót o 90 stopni w lewo, a następnie Image.FLIP_LEFT_RIGHT transverse_img = img.rotate(90).transpose(Image.FLIP_LEFT_RIGHT)
Editor is loading...
Leave a Comment