🤔Что выбрать: PHP или Python — [9:15]
В этом видео автор сравнивает два языка программирования и выбирает лучший по следующим критериям: области применения, возможности, зарплата разработчиков, синтаксис и востребованность языка.
Перейти к просмотру
#php#python#видео
Свежий расчет на 26.02.2026 10:00 для Филиппинского песо
#расчеты#PHP
Каждый день новые расчеты в @UnionPay_currency
Вся информация про UnionPay есть в https://unionpay.glide.page
Информационная поддержка: @UnionPay_info
Свежий расчет на 19.02.2026 10:00 для Филиппинского песо
#расчеты#PHP
Каждый день новые расчеты в @UnionPay_currency
Вся информация про UnionPay есть в https://unionpay.glide.page
Информационная поддержка: @UnionPay_info
Свежий расчет на 12.02.2026 10:00 для Филиппинского песо
#расчеты#PHP
Каждый день новые расчеты в @UnionPay_currency
Вся информация про UnionPay есть в https://unionpay.glide.page
Информационная поддержка: @UnionPay_info
Свежий расчет на 05.02.2026 10:00 для Филиппинского песо
#расчеты#PHP
Каждый день новые расчеты в @UnionPay_currency
Вся информация про UnionPay есть в https://unionpay.glide.page
Информационная поддержка: @UnionPay_info
Свежий расчет на 29.01.2026 10:00 для Филиппинского песо
#расчеты#PHP
Каждый день новые расчеты в @UnionPay_currency
Вся информация про UnionPay есть в https://unionpay.glide.page
Информационная поддержка: @UnionPay_info
Свежий расчет на 22.01.2026 10:00 для Филиппинского песо
#расчеты#PHP
Каждый день новые расчеты в @UnionPay_currency
Вся информация про UnionPay есть в https://unionpay.glide.page
Информационная поддержка: @UnionPay_info
Анализ видео: визуализация
Последний пост серии, первые два по ссылкам:
1. Подготовка данных
2. Анализ данных
Для виза снова используем cv2. Если данные записаны в таблицу xlsx, то понадобится модуль ast для корректного считывания синтаксиса списков.
При считывании объединяем данные в одномерный список (colors) и создаем пустой массив:
# суммарное число цветов
colors_length = len(colors)
# высота изображения в пикселях
height = 500;
# создаем пустой массив
# height: число строк
# colors_length: число столбцов
# 3: массив цвета (r, g, b)
img_array = np.zeros((height, colors_length, 3), np.uint8)
После этого заполняем массив цветами и с помощью cv2 создаем изображение:
# заполняем массив
for x in range(colors_length):
img_array[:,x] = colors[x]
# записываем в файл
cv2.imwrite('file_name.png', img_array)
Подробнее о параметрах файла палитры и том, как с ним работать, — в карточках.
P.S. И как обычно, полный код этой части в комментариях.
#датавиз#python
Анализ видео: цвет
На прошлом этапе мы записали по одному кадру видео в секунду в список captures_array. Имея данные о кадрах в формате rgb, мы можем определить преобладающие оттенки.
Для этого используем метод кластеризации, а точнее kmeans. Он позволяет разбить массив на нужное число групп по близости значений и выделить их центры (центроиды). Эти значения являются доминирующими оттенками кадра. На мой взгляд, детальность данных будет достаточная, если выделить пять центроидов (k). Этот алгоритм нужно применить в цикле к каждому кадру (capture):
# определяем размеры массива
shape = capture.shape
# пересобираем в одномерный массив
ar = capture.reshape(np.product(shape[:2]), shape[2]).astype(float)
# находим заданное число центроидов
centroids,_ = kmeans(ar, k)
В итоге получаем палитру каждого кадра фильма в хронологическом порядке. Как ее визуализировать, расскажу в следующем посте.
P.S. Полный код оставила в комментариях.
#датавиз#python
Анализ видео: подготовка данных
Я использую python, но общая логика алгоритма может пригодиться и для других языков.
Сначала нужно покадрово считать видео. Сделаем это с помощью библиотеки OpenCV (cv2):
import cv2
# видео целиком
video = cv2.VideoCapture('file_name.mp4')
# частота кадров
fps = int(video.get(cv2.CAP_PROP_FPS))
# число кадров во всем видео
frame_count = int(video.get(cv2.CAP_PROP_FRAME_COUNT))
Теперь можно запустить цикл и собрать один кадр за каждую секунду. В цикле повторяется такой код:
ret, frame = video.read()
Каждую итерацию считывается следующий кадр. В ret записывается информация о корректности считывания (True/False), frame — кадр в формате массива с rgb каждого пикселя.
Имея частоту видео, мы можем записать только один кадр в секунду. Такого объема данных достаточно для анализа. В итоге получаем список с числом кадров равным длительности видео в секундах. Что делать с ним дальше расскажу в следующем посте.
P.S. В комментариях полный код этой части.
#датавиз#python