我使用零来初始化我的矩阵,如下所示:
height = 352
width = 288
nFrames = 120
imgYuv=zeros([height,width,3,nFrames]);
Run Code Online (Sandbox Code Playgroud)
但是,当我将nFrames的值设置为大于120时,MATLAB会给出一条错误消息,说明内存不足.
原来的功能是
[imgYuv, S, A]= changeYuv(fileName, width, height, idxFrame, nFrames)
Run Code Online (Sandbox Code Playgroud)
我的命令是
[imgYuv,S,A]=changeYuv('tilt.yuv',352,288,1:120,120);
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这里发生了什么?
PS:该功能的目的之一是加载一个超过2000帧的yuv视频.有可能实现吗?
有三种方法可以避免错误
doubles.
uint8每个元素占用1个字节,double占用8个字节.因此,如果你创建你的数组B =
zeros(height,width,3,nFrames,'uint8`,它只使用内存的1/8.这可能适用于120帧,但对于2000帧,你将再次遇到麻烦.请注意,并非所有Matlab函数都适用于整数数组; 你可能不得不重新实现那些需要加倍的东西.| 归档时间: |
|
| 查看次数: |
869 次 |
| 最近记录: |