最近写了写一些用matlab做图像视频处理分析的代码,在这里分享给大家

分离图像的三通道RGB

众所周知,RGB分别是Red(红)Green(绿) Blue(蓝)

代码如下

I=imread('001.png'); %读取原图
figure('NumberTitle','off','name','yuantu')
imshow(I)
R=I(:,:,1); %分离Red通道
figure('NumberTitle','off','name','red')
imshow(R)
G=I(:,:,2); %分离Green通道
figure('NumberTitle','off','name','green')
imshow(G)
B=I(:,:,3); %分离Blue通道
figure('NumberTitle','off','name','blue')
imshow(B)

对图像进行线性变换转化为灰度图

对图像的RGB三通道进行线性变换,可以达到各种效果。就像是用matlab修图。

这里讲一下如何把图片,利用matlab修改为灰度图。在分离RGB的基础上。

代码如下:

Ic=R*0.299+G*0.587+B*0.114; %灰度图变换公式
Ic=rgb2gray(I);
figure('NumberTitle','off','name','灰度图线性变换');
imshow(Ic)

提取视频帧

可以利用matlab提取视频中的帧,并且保存导出。

代码如下:

obj=VideoReader('video.mp4'); %读取视频
obj_numberofframe = obj.NumberOfFrame; %读取视频总帧数
frame = read(obj); %读取帧
for k =1 : obj_numberofframe %读取到最后一帧
    frame = read(obj, k); %读取第k帧
    imshow(frame); %显示帧
    namestyle=sprintf('%03d',k); %输出001三位
    imwrite(frame,strcat('image\frame',namestyle,'.jpg'),'jpg');% 保存帧,其中“image\”为保存导出地址“frame”为前缀名
end