Добавил:
KaFaka
t.me
Инфо для ГУАП студентов от меня: https://kafaka.notion.site/99e6d9b70ca74f7baef3daea17839e5a
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:KR / 19_var
.m clc;
clear all;
close all;
% Открываем исходный видеофайл
input_file_name = 'input_video.mp4';
video_in = VideoReader(input_file_name);
% Создаем объект для записи видео
output_file_name = 'output_video.mp4';
video_out = VideoWriter(output_file_name, 'MPEG-4');
open(video_out);
% Читаем свойства видео
width = video_in.Width;
height = video_in.Height;
frameRate = video_in.FrameRate;
numOfFrames = round(video_in.Duration * frameRate);
% Подготовка структуры для обработанного видео
mov = struct('cdata', [], 'colormap', []);
% Цикл по кадрам видео
for k = 1 : numOfFrames
% Чтение одного кадра
frame = readFrame(video_in);
% Вычисление текущего значения ClipLimit
currentClipLimit = 0.01 + (0.49 * (k - 1) / (numOfFrames - 1));
% Применение адаптивного гистограммного выравнивания
frame_eq = adapthisteq(frame, 'ClipLimit', currentClipLimit);
% Запись обработанного кадра в выходной файл видео
writeVideo(video_out, frame_eq);
% Сохраняем кадр для возможного воспроизведения в MATLAB
mov(k).cdata = frame_eq;
end
% Закрываем файл выходного видео
close(video_out);
% Воспроизведение видео в MATLAB
hf = figure;
set(hf, 'position', [150 150 width height]);
movie(hf, mov, 1, frameRate);
clear all;
close all;
% Открываем исходный видеофайл
input_file_name = 'input_video.mp4';
video_in = VideoReader(input_file_name);
% Создаем объект для записи видео
output_file_name = 'output_video.mp4';
video_out = VideoWriter(output_file_name, 'MPEG-4');
open(video_out);
% Читаем свойства видео
width = video_in.Width;
height = video_in.Height;
frameRate = video_in.FrameRate;
numOfFrames = round(video_in.Duration * frameRate);
% Подготовка структуры для обработанного видео
mov = struct('cdata', [], 'colormap', []);
% Цикл по кадрам видео
for k = 1 : numOfFrames
% Чтение одного кадра
frame = readFrame(video_in);
% Вычисление текущего значения ClipLimit
currentClipLimit = 0.01 + (0.49 * (k - 1) / (numOfFrames - 1));
% Применение адаптивного гистограммного выравнивания
frame_eq = adapthisteq(frame, 'ClipLimit', currentClipLimit);
% Запись обработанного кадра в выходной файл видео
writeVideo(video_out, frame_eq);
% Сохраняем кадр для возможного воспроизведения в MATLAB
mov(k).cdata = frame_eq;
end
% Закрываем файл выходного видео
close(video_out);
% Воспроизведение видео в MATLAB
hf = figure;
set(hf, 'position', [150 150 width height]);
movie(hf, mov, 1, frameRate);