Я использую Python для смешивания изображений путем затухания одного над другим, но после затухания я получаю черный фонPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Я использую Python для смешивания изображений путем затухания одного над другим, но после затухания я получаю черный фон

Сообщение Anonymous »


Я пытаюсь добавить баннер в посты фестиваля с помощью Python. -> успешно добавлено -> но есть четкая граница между баннером и входным изображением, поэтому я решил скрыть обратную сторону баннера -> После добавления -> возникают реальные проблемы, при которых после исчезновения я получаю черный фон или черные пиксели, но мне нужно, чтобы фон входного изображения или пиксели входного изображения правильно объединяли баннер и входное изображение.

из изображения импорта PIL импортировать numpy как np импортировать cv2 из sklearn.cluster импорт KMeans Защиту Calculate_main_color (путь к изображению): # Загрузите изображение и преобразуйте его в массив NumPy изображение = cv2.imread(путь к изображению) image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # Преобразование в цветовое пространство RGB image = image.reshape((-1, 3)) # Преобразование в двумерный массив значений RGB # Выполните кластеризацию K-средних, чтобы найти доминирующий цвет kmeans = KMeans(n_clusters=1) kmeans.fit(изображение) доминантный_цвет = kmeans.cluster_centers_[0].astype(int) вернуть кортеж (dominant_color) def Fade_banner (image_data, Fade_height = 15): высота, ширина, _ = image_data.shape для y в диапазоне (высота - Fade_height, высота): альфа = 1,0 - (y - (высота - Fade_height)) / Fade_height image_data[y, :, 0:3] = (image_data[y, :, 0:3] * альфа).astype(np.uint8) def create_customized_image (festival_image_path, Banner_image_path, result_image_path, upscale_factor=2, Fade_height=15): # Загрузить изображение фестиваля Festival_image = Image.open(festival_image_path) # Загрузить изображение баннера баннер_изображение = Image.open(путь_баннера_изображения) # Рассчитать основной цвет фестивального изображения main_color = Calcult_main_color (festival_image_path) # Получаем размер фестивального изображения фестиваль_ширина, фестиваль_высота = фестиваль_изображение.размер # Измените размер изображения баннера, чтобы он соответствовал размерам изображения фестиваля. Banner_image.thumbnail((festival_width, Festival_height)) # Получить размер измененного изображения баннера ширина_баннера, высота_баннера = баннер_изображение.размер # Создайте градиентный баннер, соответствующий ширине фестивального изображения. градиент = np.linspace(0, 1, Festival_width).reshape(festival_width, 1, 1) Banner_data = np.array(banner_image) # Удаляем альфа-канал из Banner_data баннер_данные = баннер_данные[:, :, :3] # Настройте цвет баннера так, чтобы он соответствовал основному цвету для канала в диапазоне (3): # Цикл по каналам RGB скорректированный_канал = (banner_data[:, :, канал].astype(float) * (main_color[канал] / 255)).astype(np.uint8) баннер_данные[:, :, канал] = скорректированный_канал # Применяем эффект затухания к нижней части баннера Fade_banner (banner_data, Fade_height) # Конвертируем изображение фестиваля в массив NumPy Festival_data = np.array(festival_image) # Смешайте изображение фестиваля и изображение баннера после эффекта затухания result_image_data = np.copy(festival_data) # Примените баннер поверх изображения фестиваля result_image_data[:banner_height] = баннер_данные # Увеличьте полученное изображение для более высокого качества result_image_data = cv2.resize(result_image_data, None, fx=upscale_factor, fy=upscale_factor, interpolation=cv2.INTER_CUBIC) # Создайте объект изображения из измененного массива numpy result_image = Image.fromarray(result_image_data) # Сохраняем полученное изображение result_image.save(result_image_path) если __name__ == "__main__": # Укажите пути к входному изображению, изображению баннера и выходному изображению. input_image_path = "/Users/shameerali/Desktop/inputFolder/input_image.jpg" Banner_image_path = "/Users/shameerali/Desktop/inputFolder/banner_image.png" output_image_path = "/Users/shameerali/Desktop/inputFolder/output_image.jpg" create_customized_image(путь_входного_изображения, путь_баннера_изображения, путь_выходного_изображения) это мое изображение баннера
Изображение


это мое входное изображение
Изображение


Я получаю это выходное изображение
Изображение


Я использую эффект затухания внизу баннера, чтобы обеспечить правильное слияние изображений, но после слияния я получаю черный фон.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»