Сглаживание углов IOS в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Сглаживание углов IOS в Python

Сообщение Anonymous »


Я работаю над проектом, который предполагает манипулирование видеокадрами, и одно из требований — добавить к кадрам плавные закругленные углы. Я провел небольшое исследование того, как добавить к изображениям закругленные углы с помощью PIL или любой другой библиотеки обработки изображений, но все они создают неровные углы, которые выглядят непрофессионально. Вот код, который я пробовал: -

def add_corners(im, rad): круг = Image.new('L', (рад * 2, рад * 2), 0) нарисовать = ImageDraw.Draw(круг) draw.ellipse((0, 0, рад * 2 - 1, рад * 2 - 1), fill=255) альфа = Image.new('L', im.size, 255) w, h = im.size альфа.paste(circle.crop((0, 0, рад, рад)), (0, 0)) Alpha.paste(circle.crop((0, рад, рад, рад * 2)), (0, h - рад)) Alpha.paste(circle.crop((рад, 0, рад * 2, рад)), (w - рад, 0)) Alpha.paste(circle.crop((рад, рад, рад * 2, рад * 2)), (w - рад, h - рад)) im.putalpha(альфа) вернись, я im = Image.open('sand.png') im = round_corner_jpg(im, 50) im.save('sand_corner.png')
Изображение


и вот результат, который он дает, как видно на изображении выше, углы неровные и имеют пиксельный вид, они не гладкие, как мы можем сделать на фигме, используя сглаживание углов IOS: -
Изображение


Я также видел этот вопрос, который также имел те же требования, но они не показали код, как его реализовать: - Есть ли способ сделать красивые сглаженные закругленные углы для изображений в Python?

Я хочу убедиться, что при добавлении закругленных углов не происходит потери качества кадра, а углы должны быть гладкими и лучше, но при этом выглядеть как сглаживание углов на рис.

РЕДАКТИРОВАТЬ:-

out = cv2.VideoWriter('assets/pathToSave.mp4', fourcc, fps, (1920, 1080)) защитаgener_frame(): в то время как cap.isOpened(): код, кадр = cap.read() если код: рамка урожайности еще: печать("готово") перерыв для i кадр в перечислении (generate_frame()): # Конвертируем кадры opencv в изображение PIL img = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) im_pil = Image.fromarray(img) сс = 4 альфа = Image.new('L', (im.width*ss, im.height*ss)) # Рисуем прямоугольник со скругленными углами и отменяем суперсэмпл d = ImageDraw.Draw(альфа) d.rounded_rectangle([0,0,im.width*ss-1,im.height*ss-1],radius=120,fill='white') альфа = альфа.resize((альфа.ширина//сс, альфа.высота//сс), resample=Image.Resampling.LANCZOS) Alpha.save('DEBUG-alpha.png') # Вставьте новый альфа-канал в исходное изображение и сохраните im_pil.putalpha(альфа) im_np = np.array(im_pil.convert('RGB')) open_cv_image = im_np[:, :, ::-1].copy() outputVideo.write(open_cv_image) Я попробовал приведенный выше код, чтобы получить закругленные углы входящих видеокадров, но углы все равно остались неровными :-


Изображение


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Сглаживание углов IOS в Python
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Сглаживание углов IOS в Python
    Anonymous » » в форуме IOS
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Сглаживание углов IOS в Python
    Anonymous » » в форуме IOS
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Сглаживание углов IOS в Python
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Нахождение углов паспорта на изображениях, снятых с разных ракурсов, с помощью углов области мрз. (опенкв)
    Anonymous » » в форуме Python
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous

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