我試圖用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)表明它當然可以。 –