Я хотел бы расширить свой проект по водяным знакам изображения на видео, используя метод прогнозирования и сортировки. Для этого, простыми словами, я хочу обработать каждый кадр, внести некоторые изменения в значения пикселей на стороне отправителя, реконструировать видео из измененного кадров и хотите отменить все эти изменения пикселей на стороне получателя. Моя проблема в том, что когда видео восстанавливается после редактирования кадров, значения пикселей снова меняются. я проверил его с кодом, приведенным ниже. (я не вносил никаких изменений в пиксели, просто читал из первого видео, записывал эти кадры в другое видео в том же формате и проверял значения пикселей первых кадров обоих видео)
readerobj = VideoReader('produce.mp4');
vidFrames = read(readerobj);
numFrames = get(readerobj, 'NumberOfFrames')
outputVideo = VideoWriter('produce_new','MPEG-4');
outputVideo.FrameRate = readerobj.FrameRate;
open(outputVideo);
q=1;
x=read(readerobj,q);
for q=1:numFrames
frames=read(readerobj,q);
frame_store=frames;
writeVideo(outputVideo,frame_store);
end
close(outputVideo);
readerobj = VideoReader('produce_new.mp4');
vidFrames = read(readerobj);
numFrames = get(readerobj, 'NumberOfFrames')
q=1;
y=read(readerobj,q);
count=0;
for i=1:size(x,1)
for j=1:size(x,2)
if x(i,j)~=y(i,j)
count=count+1;
end
end
конечный счет
значение count, которое указывает количество пикселей, значение которых изменилось после реконструкции видео, огромно. На самом деле, чтобы мой код работал правильно, не нужно менять значение пикселя. Есть ли этому решение?