MAP должна быть как минимум ошибка 'm x 3 array' в MATLAB
Я пытаюсь сгенерировать код C с помощью MATLAB Coder. Входные данные для функции - это изображение, которое было обработано imread
в MATLAB. Поскольку на выходе должен быть массив m x n x 3 из imread
Я не уверен, почему эта ошибка отображается. Утверждения в начале функции показаны ниже. После этого 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, если кому-то нужно его скомпилировать.
Помощь будет высоко ценится!
1 ответ
Если ваш код точно такой же, как вы показали на картинке, то ошибка очевидна. 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.