matlab中的clipvalue()错误

Posted

技术标签:

【中文标题】matlab中的clipvalue()错误【英文标题】:Error in clipvalue () in matlab 【发布时间】:2017-02-04 13:58:52 【问题描述】:

这项工作是在 MPEG 编解码器上进行的,它应该将 YUV 文件作为原始视频输入输出。以下是我用来将 YUV 文件转换为 RGB 的代码

fileName = 'bus.y4m';
width = 250;
height = 250;
nrFrame = 10;

fileId = fopen(fileName, 'r');
subSampleMat = [1, 1; 1, 1];
dummy = fgetl(fileId); % Skip file header

%progressbar
for f = 1:nrFrame
    %f

    % Skip frame header
    dummy = fgetl(fileId);
    fprintf('fileID = %i',fileId); 
    % read Y component
    buf = fread(fileId, width * height, 'uchar');
    imgYuv(:, :, 1) = reshape(buf, width, height).'; % reshape

    % read U component
    buf = fread(fileId, width / 2 * height / 2, 'uchar');
    buf = reshape(buf, width / 2, height / 2).';
    imgYuv(:, :, 2) = kron(buf, subSampleMat); % reshape and upsample

    % read V component
    buf = fread(fileId, width / 2 * height / 2, 'uchar');
    buf = reshape(buf, width / 2, height / 2).';
    imgYuv(:, :, 3) = kron(buf, subSampleMat); % reshape and upsample

    % convert YUV to RGB
    imgRgb = reshape(convertYuvToRgb(reshape(imgYuv, height * width, 3)), height, width, 3);
    mov(f) = im2frame(imgRgb);

    progressbar(f/nrFrame)
end
fclose(fileId);

我收到以下错误

“double”类型的输入参数的未定义函数“clipValue”。

convertYuvToRgb 中的错误(第 11 行)

rgb = uint8(clipValue(rgb, 0, 255));

转换错误(第 32 行) imgRgb = reshape(convertYuvToRgb(reshape(imgYuv, height * width, 3)), height, width,3);

运行出错(第 64 行)

evalin('caller', [script ';']);

可能出了什么问题??

【问题讨论】:

【参考方案1】:

问题是:convertYuvToRgb.m 依赖于clipValue.m

我认为您丢失了一些文件...

    转到https://www.mathworks.com/matlabcentral/fileexchange/6318-convert-yuv-cif-4-2-0-video-file-to-image-files/content/YUV2Image/convertYuvToRgb.m 下载 YUV2Image.zip。 解压 YUV2Image.zip。确保您将所有提取的文件都放在同一个文件夹中。 从https://www.mathworks.com/matlabcentral/fileexchange/6922-progressbar 下载并解压progressbar.zip(将progressbar.m 复制到与YUV2Image 相同的文件夹中)。 将源文件放在文件夹中...

我找不到bus.y4m,所以我用bus_cif.y4m 进行了测试。

【讨论】:

以上是关于matlab中的clipvalue()错误的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB 中的 fsolve 错误

函数调用中的matlab错误

将输出错误消息保存到 MATLAB 中的文件

捆绑调整示例中的运行时错误 - matlab

Mex 文件执行中的错误,Matlab 窗口

2013a 中的 Matlab Saveas 错误