Errors occurred during parsing of MATLAB function
12 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
hanaa
el 15 de Jul. de 2014
Comentada: hanaa
el 18 de Jul. de 2014
I'm trying to run SPIHT algorithm without arithmetic coding with Matlab function block, an error occurred: Errors occurred during parsing of MATLAB function 'MATLAB Function'(#24) Component: MATLAB Function | Category: Coder error
below the function code:
function func_SPIHT_Main
% Matlab implementation of SPIHT (without Arithmatic coding stage)
%
% Main function
%
% input: Orig_I : the original image.
% rate : bits per pixel
% output: img_spiht
%
fprintf('----------- Welcome to SPIHT Matlab Demo! ----------------\n');
fprintf('----------- Load Image ----------------\n');
infilename = '11.bmp';
outfilename = '1_reconstruct.bmp';
Orig_I = double(imread(infilename));
rate = 1;
OrigSize = size(Orig_I, 1);
max_bits = floor(rate * OrigSize^2);
OutSize = OrigSize;
image_spiht = zeros(size(Orig_I));
[nRow, nColumn] = size(Orig_I);
fprintf('done!\n');
fprintf('----------- Wavelet Decomposition ----------------\n');
n = size(Orig_I,1);
n_log = log2(n);
level = n_log;
% wavelet decomposition level can be defined by users manually.
type = 'bior4.4';
[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters(type);
[I_W, S] = func_DWT(Orig_I, level, Lo_D, Hi_D);
fprintf('done!\n');
fprintf('----------- Encoding ----------------\n');
img_enc = func_SPIHT_Enc(I_W, max_bits, nRow*nColumn, level);
fprintf('done!\n');
fprintf('----------- Decoding ----------------\n');
img_dec = func_SPIHT_Dec(img_enc);
fprintf('done!\n');
fprintf('----------- Wavelet Reconstruction ----------------\n');
img_spiht = func_InvDWT(img_dec, S, Lo_R, Hi_R, level);
fprintf('done!\n');
fprintf('----------- PSNR analysis ----------------\n');
Q = 255;
MSE = sum(sum((img_spiht-Orig_I).^2))/nRow / nColumn;
fprintf('The psnr performance is %.2f dB\n', 10*log10(Q*Q/MSE));
please help, thanks
0 comentarios
Respuesta aceptada
Brian B
el 17 de Jul. de 2014
Editada: Brian B
el 17 de Jul. de 2014
The code you have posted may work just fine in MATLAB, but will not work in Simulink. Not all functions are supported for use in a MATLAB function block. In fact, you should have seen other errors (in addition to the one you described) telling you exactly which unsupported function the compiler first detected, such as:
"The function 'imread' is not supported for standalone code generation."
For a list of those functions that are supported, see http://www.mathworks.com/help/simulink/ug/functions-supported-for-code-generation--alphabetical-list.html. In particular, you cannot use imread or wfilters. There may be calls to other unsupported functions inside func_SPIHT_Enc, func_SPIHT_Dec, func_InvDWT
For other general information about the block, see http://www.mathworks.com/help/simulink/slref/matlabfunction.html.
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!