matlab中基于帧输出matlab 1i是什么意思思

matlab图像处理(12)
这段代码可将avi视频中的每一帧画面截取出来,并转存到单独的文件夹中。
% choose a video file
[filename, pathname] = uigetfile('*.avi', 'choose a video file', 'video.avi', 'Multiselect', 'on');
fprintf('filename = %s \npathname = %s \n\n', filename, pathname);
if ischar(filename)
fprintf('choose file success.\n\n');
video = mmreader([pathname filename]);
len = video.NumberOfF % get length of the video
fprintf('length of video : %d \n\n', len);
dir=strcat(pathname,strrep(filename,'.avi',''),'\pic');
mkdir(dir); % create folder for saving picture
fn=strrep(filename,'.avi','');
for k = 1 : len - 1
frame = rgb2gray(read(video, k));
imwrite(frame,strcat(dir,'\',fn,'-avi-000',int2str(k),'.bmp'),'bmp');
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:18421次
排名:千里之外
原创:10篇
转载:12篇2561人阅读
21.MATLAB支持的几种图像文件格式:⑴JPEG(Joint Photogyaphic Expeyts Group):一种称为联合图像专家组的图像压缩格式。 ⑵BMP(Windows Bitmap):有1位、4位、8位、24位非压缩图像,8位RLE(Run length Encoded)的图像。文件内容包括文件头(一个BITMAP FILEHEADER数据结构)、位图信息数据块(位图信息头BITMAP INFOHEADER和一个颜色表)和图像数据。⑶PCX(Windows Paintbrush):可处理1位、4位、8位、16位、24位等图像数据。文件内容包括文件头、图像数据和扩展色图数据。⑷TIFF(Tagged Iamge File Format):处理1位、4位、8位、24位非压缩图像,1位、4位、8位、24位packbit压缩图像,1位CCITT压缩图像等。文件内容包括文件头、参数指针表与参数域、参数数据表和图像数据四部分。⑸PNG(Portable Network Graphics):包括1位、2位、4位、8位和16位灰度图像,8位和16位索引图像,24位和48位真彩色图像。⑹GIF(Graphics Interchange Format):任何1位到8位的可交换的图像。⑺HDF(Hierarchial Data Format):有8位、24位光栅图像数据集。⑻ICO(Windows Icon resource):有1位、4位、8位非压缩图像。⑼CUR(Windows Cursor resource):有1位、4位、8位非压缩图像。⑽XWD(X Windows Dump):包括1位、8位Zpixmaps,XYBitmaps,XYPixmmmaps。⑾RAS(Sun Raster image):有1位bitmap、8位索引、24位真彩色和带有透明度的32位真彩色。⑿PBM(Portable Bitmap)。⒀PGM(Portable Graymap)。⒁PPM(Portable Pixmap)。2.MATLAB支持五种图像类型,即二值图像、索引图像、灰度图像、RGB图像和多帧图像阵列。图像类型 Double数据 uint8和uint16数据 二值图像 图像为m&n的整数矩阵,元素值范围[0,1] 图像为m&n的整数矩阵,元素值范围[0,1] 索引图像 图像为m&n的整数矩阵,元素值范围[0,p] 图像为m&n的整数矩阵,元素值范围[0,p-1] 灰度图像 图像为m&n的浮点数矩阵,元素值范围[0,1] 图像为m&n的整数矩阵,元素值范围[0,255]或[0,65535] RGB图像 图像为m&n&3的浮点数矩阵,元素值范围[0,1] 图像为m&n&3的整数矩阵,元素值范围[0,255]或[0,65535] 其中,多帧图像阵列是由多帧图像组成的,每一帧图像可以为前四种图像中的一种,但组成一个多帧图像阵列的图像必须为同一种。cat函数可以将具有相同尺寸的几个独立图像存成多帧文件。对于多帧图像也可以从中提取单帧。2.2.2 图像类型判断及转换 1.在MATLAB中如果要判断一个图像文件的类型,可使用如下指令:l & & & & isbw:若图像为二值图像,则返回真。l & & & & isgray:若图像为灰度图像,则返回真。l & & & & isind:若图像为索引图像,则返回真。l & & & & isrgb:若图像为RGB图像,则返回真。2.在MATLAB系统中,要将一个类型的图像文件转换成另一个类型的图像文件,只需将前一个文件的图像数据用imread读出,再用imwrite以适当的格式写到后一个图像文件中去即可。另外,要将灰度图像I转换成RGB图像,可运用cat指令。cat函数可以把一些单一的图像合并成图像序列。在图像序列中每个图像需有相同的大小,如果是索引图像,色图也要一致。此外,MATLAB还提供了若干函数,用于图像类型的转换。这些函数有:l & & & & dither:用抖动法(dithering)转换图像。该函数通过颜色抖动(颜色抖动即改变边沿像素的颜色,使像素周围的颜色近似于原始图像的颜色,从而以空间分辨率来换取颜色分辨率)来增强输出图像的颜色分辨率。该函数可以把RGB图像转换成索引图像或把灰度图像转换成二值图像。l & & & & gray2ind:灰度图像或二值图像向索引图像转换。l & & & & grayslice:设定阈值将灰度图像转换为索引图像。l & & & & im2bw:设定阈值将灰度、索引、RGB图像转换为二值图像。l & & & & im2double:将图像数组转换为double型。l & & & & im2uint8:将图像数组转换为uint8型。l & & & & im2uint16:将图像数组转换为uint16型。该函数不支持二值图像序列的转换。l & & & & ind2gray:索引图像向灰度图像转换。l & & & & ind2rgb:索引图像向RGB图像转换。l & & & & mat2gray:将一个数据矩阵转换为灰度图像。l & & & & rgb2gray:RGB图像向灰度图像转换或将彩色色图转换成灰度色图。l & & & & rgb2ind:RGB图像向索引图像转换。包含三种不同方法:均衡量化、最小值量化、色图映射。l & & & & im2java:一般图像向Java图像转换。l & & & & label2rgb:标志图像向RGB图像转换。2.2.3 图像的查询及读写 在MATLAB中要查询一个图像文件的信息,只要用imfinfo指令加上文件及其完整路径名即可。函数调用格式为:info = imfinfo(filename,fmt)info = imfinfo(filename)参数fmt对应于所有图像处理工具箱中所有支持的图像文件格式。MATLAB提供了两个重要的用于图像文件的读写的指令,分别是从图像文件中读取数据的imread,以及将数据写入到图像文件中的imwrite。1.imread的常见调用格式为:A = imread(filename,fmt)其作用是将文件名用字符串filename表示的,扩展名用fmt表示的图像文件中的数据读到矩阵A中。如果filename所指的为灰度级图像,则A为一个二维矩阵;如果filename所指的为RGB图像,则A为一个m&n&3的三维矩阵。Filename表示的文件名必须在MATLAB的搜索路径范围内,否则需指出其完整路径。&imread的其他几种重要的调用格式为:[X,map] = imread(filename.fmt)[&] = imread(filename)[&] = imread(URL,&)[&] = imread(&,idx) & & & & & (CUR,ICO and TIFF only)[&] = imread(&,&frames&,idx) & &(GIF only)[&] = imread(&,ref) & & & & & (HDF only)[&] = imread(&,&BackgroundColor&,BG) & &(PNG only)[A,map,alpha] = imread(&) & & &(ICO,CUR and PNG only)上面一些参数的含义如下:idx是指读取图标(cur、ico、tiff)文件中第idx个图像,默认值为1。&frame&,idx是指读取gif文件中的图像帧,idx值可以是数量、向量或&all&。ref是指整数值。alpha是指透明度。2.imwrite的常用调用格式为:imwrite(A,filename,fmt)imwrite(X,map,filename,fmt)imwrite(&,filename)imwrite(&,Param1,Val1,Param2,Val2&)其中imwrite(&,Param1,Val1,Param2,Val2&)可以让用户控制HDF、JPEG、TIFF等一些图像文件格式的输出特性。&在MATLAB中,默认的保存类型是uint8。由于PNG和TIFF格式支持16位的图像,所以保存这类图像时,保存类型就是uint16。2.2.4 图像的显示 显示图像的最基本的手段是使用image函数。该函数还产生了图像对象的句柄,并允许对对象的属性进行设置。此外,imagesc函数也具有image的功能,所不同的是imagesc函数还自动将输入数据比例化,以全色图的方式显示。imshow函数比image和imagesc更常用,它能自动设置句柄图像的各种属性。imshow可用于显示各类图像。对于每类图像,调用方法如下:l & & & & imshow filename:显示图像文件。l & & & & imshow(BW):显示二值图像,BW为黑白二值图像矩阵。l & & & & imshow(X,map):显示索引图像,X为索引图像矩阵,map为色彩图示。l & & & & imshow(I):显示灰度图像,I为二值图像矩阵。l & & & & imshow(RGB):显示RGB图像,RGB为RGB图像矩阵。l & & & & imshow(I,[low high]):将非图像数据显示为图像,这需要考虑数据是否超出了所显示类型的最大允许范围,其中[low high]用于定义待显示数据的范围。有关图像显示的函数或其辅助函数,除了上述的以外,MATLAB还提供了一些用于进行图像的特殊显示的函数。l & & & & colorbar:为图像的显示增加一个颜色条,这一用法对于了解被显示图像的灰度级别特别有用。l & & & & getimage:获取图像数据。l & & & & immovie:将多帧索引图像制作成连续图像格式。其调用格式为:mov = immovie(D,map)不过这种功能只对索引图像有效,其中D为多帧索引图像阵列,map为索引图像的对应色阶。对于其他类型图像,则需要首先将其转换为索引图像。l & & & & montage:多帧图像的一次显示。它能将每一帧分别显示在一幅图像的不同区域,所有子区的图像都用同一个色彩条。l & & & & movie:播放多帧连续图像。l & & & & subimage:在一个图形区域内显示多个图像。l & & & & truesize:调整图像显示的尺寸。l & & & & warp:显示图像的纹理表面图。前面提到的图像显示手段都只能在二维平面上显示,MATLAB6.5的一个强大功能是能将平面图像显示在空间三维曲面上。这是由warp函数的纹理成图功能来实现的,该功能能通过双线性插值将平面图像投影到三维曲面上。l & & & & zoom:将图像或二维图形进行放大或缩小显示。zoom本身是是一个开关键,zoom on用于打开缩放模式,zoom off用于关闭该模式,zoom in用于放大局部图像,zoom out用于缩小图像。至于多个图像的显示,则可分为两个方面:在不同的图形窗口显示不同的图像,可以用figure指令来实现;在同一个图形窗口显示多图,可以用subplot来实现。第三章 图像运算 3.1 图像的点运算 点运算将输入图像映射为输出图像,输出图像每个像素点的灰度值仅由对应的输入像素点的值决定。它常用于改变图像的灰度范围及分布,是图像数字化及图像显示的重要工具。点运算因其作用性质,也被称为对比度增强、对比度拉伸或灰度变换。在真正进行图像处理之前,有时可以用点运算来克服图像数字化设备的局限性。 点运算实际上是灰度到灰度的映射过程。点运算不会改变图像内像素点之间的空间关系。设输入图像为A(x, y),输出图像为B(x, y),则点运算可表示为: B(x, y) = f [A(x, y)] & & & & & & & &(3-1)点运算可完全由灰度变换(gray-scale transformation)函数s=f (r)决定,后者描述了输入灰度级与输出灰度级之间的映射关系。图像的点运算分为线性点运算和非线性点运算两种。3.1.1 线性点运算 线性点运算是指灰度变换函数f为线性函数时的运算。如图3.1,当a>1时,输出图像对比度增大;当a<1时,输出图像对比度降低;当a=1,b=0时,输出图像就是输入图像的简单复制;当a=1,b&0时,仅使输出图像的灰度值上移或下移,其效果是使整个图像更亮或更暗。如果a为负值,暗区域将变亮,亮区域将变暗,点运算完成了图像求补。除了调节对比度以外,还有一种典型的线性点运算的应用就是灰度标准化。设灰度图像为I[W][H],其中W表示图像宽度,H表示图像的高度,那么灰度图像的平均灰度和方 & & & & & 图3.1 线性函数差由如下计算公式得到:平均灰度: & & & & & & & & & & & & & & & & & & & & & & & & & & & &(3-2)方差:& & & & & & & & & & & & & & (3-3)可以将其变换为具有相同均值和方差的变换函数(线性映射),其形式如下:& & & & & & & & (3-4)其中&0和u 0为给定的变换参数。灰度标准化可以用来生成一些常用的平均模型。3.1.2 非线性点运算 非线性点运算对应于非线性映射函数,典型的映射包括平方函数、对数函数、截取函数(窗口函数)、域值函数、多值量化函数等。阈值化处理是最常用的一种非线性点运算,它的功能是选择一阈值,将图像二值化,然后使用生成的二进制图像进行图像分割及边缘跟踪等处理。直方图均衡化也是一种非常常用的非线性点运算。它是指将一个已知灰度分布的图像使用某种非线性灰度变换函数进行计算,使运算结果变成一幅具有均匀灰度分布的新图像。经过直方图均衡化的点运算处理后,实际的直方图将呈现参差不齐的外形,这是由于灰度级的可能个数是限造成的。在一些灰度级处可能没有像素,在另外一些灰度级处则像素很拥挤。点运算的MATLAB实现:I=imread('rice.png');rice=double(I);rice2=rice*0.5+50;J=uint8(rice2);subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(J); 转载的地址忘啦。呵呵
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:118878次
积分:1881
积分:1881
排名:第17126名
原创:68篇
评论:26条
(1)(1)(1)(2)(7)(14)(21)(13)(7)(1)&基于matlab的平均帧背景提取方法
秒后自动跳转到登录页
(奖励5下载豆)
快捷登录:
举报类型:
不规范:上传重复资源
不规范:标题与实际内容不符
不规范:资源无法下载或使用
其他不规范行为
违规:资源涉及侵权
违规:含有危害国家安全等内容
违规:含有反动/色情等内容
违规:广告内容
详细原因:
任何违反下载中心规定的资源,欢迎Down友监督举报,第一举报人可获5-10下载豆奖励。
视频课程推荐
基于matlab的平均帧背景提取方法
上传时间:
技术分类:
资源评价:
(0位用户参与评价)
已被下载&37&次
本方法是实现对视频帧背景提取。
本资料共包含以下附件:
基于matlab的平均帧背景提取方法.rar
51CTO下载中心常见问题:
1.如何获得下载豆?
1)上传资料
2)评论资料
3)每天在首页签到领取
4)购买VIP会员服务,无需下载豆下载资源
5)更多途径:点击此处
2.如何删除自己的资料?
下载资料意味着您已同意遵守以下协议:
1.资料的所有权益归上传用户所有
2.未经权益所有人同意,不得将资料中的内容挪作商业或盈利用途
3.51CTO下载中心仅提供资料交流平台,并不对任何资料负责
4.本站资料中如有侵权或不适当内容,请邮件与我们联系()
5.本站不保证资源的准确性、安全性和完整性, 同时也不承担用户因使用这些资料对自己和他人造成任何形式的伤害或损失
下载2817次
下载1362次
下载2163次
下载1049次
下载2708次
相关专题推荐
本专题主要收集了Auto CAD2010系列视
VideoStudio Pro X6 (会声会影 X6)
汇集各大知名厂商设备、服务器VISIO图
数字电子技术,西安电子科技大学视频
网络收集的中国科技大学龚升教授的《
收集个人认为较为经典的Selenium资料
收集个人认为教好的LoadRunner相关的
2016年杭州·云栖大会在10月13日9点拉
从基础开始学习黑客的基本知识,了解
最基础的黑客技术资料,详细介绍了黑
意见或建议:
联系方式:
您已提交成功!感谢您的宝贵意见,我们会尽快处理查看: 2590|回复: 7|关注: 0
Matlab能实现从视频中提取每一帧并还原么?
<h1 style="color:# 麦片财富积分
新手, 积分 7, 距离下一级还需 43 积分
如题,Matlab能不能实现把视频中的每一帧都提取出来,然后保存为图片,最后还能把图片还原成视频?求具体代码啊!!!
<h1 style="color:# 麦片财富积分
你是想播放出来还是存成avi?
<h1 style="color:# 麦片财富积分
你是想播放出来还是存成avi?
图片合成AVI不用播放,只要还原成AVI视频就好了
论坛优秀回答者
<h1 style="color:#51 麦片财富积分
关注者: 268
help videoreader&&
help videowrite
<h1 style="color:# 麦片财富积分
help videoreader&&
help videowrite
这两个函数在哪个版本里有?我还用的Matlab7.0
论坛优秀回答者
<h1 style="color:#51 麦片财富积分
关注者: 268
这两个函数在哪个版本里有?我还用的Matlab7.0
去用最新的吧
我的是2012
<h1 style="color:# 麦片财富积分
去用最新的吧
我的是2012
pic=dir('.\*.bmp');
%取文件的数量:num
%a=size(pic);
%num=a(1);
num=10;
for i=1:num
im(:,:,:,i)=imread(strcat(num2str(i),'.bmp'));
imshow(im(:,:,:,i))
movie2avi(M,'out.avi','FPS',15)%输出视频
mov=aviread('out.avi');
temp=size(mov);
fnum=temp(2);
i=10;
strtemp=strcat(int2str(i),'aa.','bmp');
imwrite(mov(i).cdata(:,:,:),strtemp);复制代码这是我找的把10张图片合成AVI,然后提取第10帧的的代码。可是为什么后来提取出来的第10帧的图片大小和原来的第10帧图片尺寸不一样啊?原来的是160*120,提出来的是164*124.
论坛优秀回答者
<h1 style="color:#51 麦片财富积分
关注者: 268
这是我找的把10张图片合成AVI,然后提取第10帧的的代码。可是为什么后来提取出来的第10帧的图片大小和原 ...
getframe是截图啊,亲
你不能截图而是读取你视频每一帧的数据啊
Powered by}

我要回帖

更多关于 matlab gca是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信