我试图用MATLAB编码器生成C代码。该函数的输入是在MATLAB中已被imread
处理的图像。由于输出应该是m×n×3数组,从imread
,我不确定为什么会显示此错误。下面显示了函数开始处的断言。之后是rgb2gray
这是错误的来源。MAP在MATLAB中必须至少有'm×3阵列'错误
%#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文件是否有人需要编译它。
帮助将非常感谢!
能不能请张贴完整的错误,你进入你的问题?我们可以假设所有的断言都是有效的吗? – krisdestruction
'imread'的第二个输出参数会给你色彩图('m x 3')。第一个参数为您提供图像本身(如果是灰度,则为“m x 3”,如果是颜色,则为“m x n x 3”)。 –
colormap是否必须是“rgb2gray”的输入?为什么图像本身不能成为“rgb2gray”的输入?这[文档](http://uk.mathworks.com/help/matlab/ref/rgb2gray.html)表明它当然可以。 –