Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 06.03.2022
Сообщений: 12

Как заменить сплошной цвет фоном (своего рода хромакей)

16.05.2022, 09:54. Показов 813. Ответов 1

Студворк — интернет-сервис помощи студентам
Приветствую!
У меня есть видео, я его обрабатываю и то, чем нужно заменить фоном, закрасил чёрным цветом.
Как вместо чёрного цвета подставить другое изображение(фон)? И видео с чёрным цветом быстрее обычного, как и это исправить? Вот код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import cv2
import numpy as np
 
# open up video
cap = cv2.VideoCapture("D://video2.mp4");
 
# grab one frame
scale = 0.5;
_, frame = cap.read();
h,w = frame.shape[:2];
h = int(h*scale);
w = int(w*scale);
 
# videowriter
res = (w, h);
fourcc = cv2.VideoWriter_fourcc(*'XVID');
out = cv2.VideoWriter('test_vid.avi',fourcc, 30.0, res);
 
# loop
done = False;
while not done:
    # get frame
    ret, img = cap.read();
    if not ret:
        done = True;
        continue;
 
    # resize
    img = cv2.resize(img, res);
 
    # change to hsv
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV);
    h,s,v = cv2.split(hsv);
 
    # get uniques
    unique_colors, counts = np.unique(s, return_counts=True);
 
    # sort through and grab the most abundant unique color
    big_color = None;
    biggest = -1;
    for a in range(len(unique_colors)):
        if counts[a] > biggest:
            biggest = counts[a];
            big_color = int(unique_colors[a]);
 
    # get the color mask
    margin = 50;
    mask = cv2.inRange(s, big_color - margin, big_color + margin);
 
    # smooth out the mask and invert
    kernel = np.ones((3,3), np.uint8);
    mask = cv2.dilate(mask, kernel, iterations = 1);
    mask = cv2.medianBlur(mask, 5);
    mask = cv2.bitwise_not(mask);
 
    # crop out the image
    crop = np.zeros_like(img);
    crop[mask == 0] = img[mask == 0];
 
    # show
    cv2.imshow("Mask", mask);
    cv2.imshow("Blank", crop);
    cv2.imshow("Image", img);
    done = cv2.waitKey(1) == ord('q');
 
    # save
    out.write(crop);
 
# close caps
cap.release();
out.release();
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.05.2022, 09:54
Ответы с готовыми решениями:

Как программно создать своего рода Меш для UI
допустим есть экран игры, и мне нужно кликнуть в некую область UI (которая может затрагивать несколько элементов). 1) если это...

Цвет ссылки сливается с фоном: как этого избежать?
у меня съехал весь текст не знаю что наделал... и еще как изменить и где цвет ссылки когда на нее наводишь курсор а то она похожа делается...

Как соединить два противоположных друг другу кольца полигонами, чтобы получился своего рода цилиндр?
Такой результат получился нажатием Alt + F, но нужно упростить полигоны. Нужно, чтобы один полигона соединял две грани, а не два...

1
0 / 0 / 0
Регистрация: 06.03.2022
Сообщений: 12
18.05.2022, 14:23  [ТС]
Спасибо, но больше помощь не нужна. Я нашел другое решение, но поставленную задачу выполняет. Мне нужно было скрыть человеческую кожу, заменив фоном, как хромакей. Я загуглил так: "Как сделать плащ-невидимку из Гарри Поттера python" - всё получилось! Ай да я, великий программист
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.05.2022, 14:23
Помогаю со студенческими работами здесь

Изменение фона на Сплошной цвет через реестр
Доброго дня, Существует необходимость в настройке рабочего стола а именно не получается конкретно для всех пользователей, задать в...

Своего рода защита для файла
Добрый день уважаемые Башеры, вопрос, есть ли возможность реализации защиты для файла следующим путем: 1-Служба работающая на...

Написать своего рода обработчик исключений
Программа - калькулятор WinForms. Нужно ограничить ввод в поля txt1 и txt2 символов за исключением цифр 0-9, знака - и запятой, точку при...

Знать ДРЕВО рода своего это важно
Всем доброе время суток. Решили с сынишкой сделать сайт-древо нашего рода. Среди прочих штучек которые мы туда вводим,пришло решение...

своего рода анимация и замена надписи на кнопке
здравствуйте! предположим есть картинка, она разбита на N-ное количество частей, число N равно числу кадров, т.е в каждой части картинки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru