MAP 在 MATLAB 中必须至少有 'm x 3 array' 错误
MAP must be at least 'm x 3 array' error in MATLAB
我正在尝试使用 MATLAB Coder 生成 C 代码。该函数的输入是在 MATLAB 中由 imread
处理过的图像。由于输出应该是来自 imread
的 m x n x 3 数组,我不确定为什么会显示此错误。函数开头的断言如下所示。接下来是 rgb2gray
,这是错误的来源。
%#codegen
assert(isa(IM, 'uint8'));
assert(size(IM, 1) < 100);
assert(size(IM, 2) < 100);
assert(size(IM, 3) == 3);
I_temp = rgb2gray(IM);
我收到的错误报告如下所示:
函数的输出和输入如下:
function [actual_lep_x, actual_lep_y, actual_rep_x, actual_rep_y, actual_lmp_x, actual_lmp_y, actual_rmp_x, actual_rmp_y, actual_lnp_x, actual_lnp_y, np_x, np_y] = Points( IM )
如果有人需要编译,我可以把.m文件发过来。
非常感谢您的帮助!
如果您的代码完全与您在图片中显示的相同,那么错误就很明显了。 IM
似乎是一个文件名,因为在上面的行中,您已经完成了 I_ttemp=imread(IM)
(由于未知原因被注释)。现在,由于 rgb2gray
没有收到 m x n x 3
数组,它排除的其他参数是具有维度 m x 3
的颜色图。但是,您提供了一个格式为 1 x m
的文件名。因此错误。
你应该写:
I_temp=imread(IM);
if size(I_temp,3)==3
I_temp=rgb2gray(I_temp);
end
%do processing on I_temp.
我正在尝试使用 MATLAB Coder 生成 C 代码。该函数的输入是在 MATLAB 中由 imread
处理过的图像。由于输出应该是来自 imread
的 m x n x 3 数组,我不确定为什么会显示此错误。函数开头的断言如下所示。接下来是 rgb2gray
,这是错误的来源。
%#codegen
assert(isa(IM, 'uint8'));
assert(size(IM, 1) < 100);
assert(size(IM, 2) < 100);
assert(size(IM, 3) == 3);
I_temp = rgb2gray(IM);
我收到的错误报告如下所示:
函数的输出和输入如下:
function [actual_lep_x, actual_lep_y, actual_rep_x, actual_rep_y, actual_lmp_x, actual_lmp_y, actual_rmp_x, actual_rmp_y, actual_lnp_x, actual_lnp_y, np_x, np_y] = Points( IM )
如果有人需要编译,我可以把.m文件发过来。
非常感谢您的帮助!
如果您的代码完全与您在图片中显示的相同,那么错误就很明显了。 IM
似乎是一个文件名,因为在上面的行中,您已经完成了 I_ttemp=imread(IM)
(由于未知原因被注释)。现在,由于 rgb2gray
没有收到 m x n x 3
数组,它排除的其他参数是具有维度 m x 3
的颜色图。但是,您提供了一个格式为 1 x m
的文件名。因此错误。
你应该写:
I_temp=imread(IM);
if size(I_temp,3)==3
I_temp=rgb2gray(I_temp);
end
%do processing on I_temp.