Затемнение изображения в Python - PullRequest
0 голосов
/ 05 октября 2019

Я пытаюсь реализовать метод затемнения для затемнения изображения путем преобразования значений пикселей и использования этого уравнения X (новый) = 0,5 * X (старый) ^ 2. Я немного погуглил и не смог добиться успеха. Вот мой код:

import math
from PIL import Image
import numpy as np
from skimage import color, io
import matplotlib.pyplot as plt


def load(image_path):
    out = plt.imread(image_path)

    out = out.astype(np.float64) / 255
    return out


def dim_image(image):
    out = image.point(lambda x: x*0.5)

    return out

def display(img):
    # Show image
    plt.figure(figsize = (5,5))
    plt.imshow(img)
    plt.axis('off')
    plt.show()

image1 = load(image1_path)
image2 = load(image2_path)

display(image1)
display(image2)

new_image = dim_image(image1)
display(new_image)

1 Ответ

0 голосов
/ 05 октября 2019

Вы пытаетесь использовать .point для массива numpy, который не существует. Я предполагаю, что вы хотели уменьшить все значения цвета на 50%, чтобы затемнить изображение, и в этом случае вы должны использовать np.dot ( документы ):

def dim_image(image):
    out = np.dot(image, 0.5)
    return out
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...