MATLAB 视频Gamma灰度校正 中值滤波显示(不输出)
时间: 2023-08-05 12:04:08 浏览: 95
matlab 中值滤波
以下是实现该功能的 MATLAB 代码:
```matlab
% 读取视频文件
videoReader = VideoReader('input_video.mp4');
% 创建视频写入对象
videoWriter = VideoWriter('output_video.mp4', 'MPEG-4');
open(videoWriter);
% 设置 Gamma 值和中值滤波器大小
gamma = 1.5;
medianFilterSize = 3;
% 逐帧处理视频
while hasFrame(videoReader)
% 读取一帧
frame = readFrame(videoReader);
% 进行 Gamma 灰度校正
correctedFrame = imadjust(frame, [], [], gamma);
% 进行中值滤波
filteredFrame = medfilt2(correctedFrame, [medianFilterSize, medianFilterSize]);
% 显示中值滤波后的帧(不输出到屏幕)
imshow(filteredFrame, 'DisplayRange', []);
% 将处理后的帧写入输出视频
writeVideo(videoWriter, filteredFrame);
end
% 关闭视频写入对象
close(videoWriter);
```
代码中使用 `VideoReader` 和 `VideoWriter` 对象读取和写入视频文件。在处理每一帧时,先进行 Gamma 灰度校正和中值滤波,然后使用 `imshow` 函数显示中值滤波后的帧,但是通过设置 `'DisplayRange'` 参数为空数组,使得不输出到屏幕。最后使用 `writeVideo` 函数将处理后的帧写入输出视频中。
阅读全文