Today, when I use the toolbox for calibration, it gives a error :
"
??? Error using ==> eq
Matrix dimensions must agree.
Error in ==> loadpgm at 68
elseif ~any(c == white)
"
The images is PGM format. These errors come from "loadpgm.m" file. I find that when the error happens, the c is empty, which means the reader pointer is getting the end of file.
In the "loadpgm.m" file, the program likes:
"
maxval = fscanf(fid, '%d', 1);
while 1
c = fread(fid,1,'char');
if c == '#',
fgetl(fid);
elseif ~any(c == white)
fseek(fid, -1, 'cof'); % unputc()
break;
end
end
"
The program read maxval correctly, so it is going on and checking next value, if it's '#' or says 35, then the program will read a row line. What happens here, the interesting thing is the first image data value is 35, which is not '#', but just a interger value 35. The program "think" it's '#', and get the whole line which contain all image data, so next time ,it finds it goes to end of file.
I change the first image data to 36, then it works very well. The matlab function imread works well here for this special case.
Monday, March 15, 2010
Wednesday, March 3, 2010
The errors and solutions when compiling the levmar with lapack
Well, there are a lot of errors. I google a lot to find solutions, and I add them here. Good for newbies.
Q1. undefined reference to `MAIN__'
S: add '-u MAIN_' in the GCC part of Makefile
Q2. undefined symbol: _gfortran_concat_string
S: add '-gfortran' in the GCC part of Makefile
Q3. misuse the command matlab mex with the command mex from pdfTeXK.
S: replace 'mex' by whole directory '/where your matlab is/bin/mex' in Makefile
Q4. multiple definition of `xerbla_'
S: set 'LAPACKBLASLIBS_PATH=/usr/lib/atlas' in the Makefile of matlab subfolder
Q1. undefined reference to `MAIN__'
S: add '-u MAIN_' in the GCC part of Makefile
Q2. undefined symbol: _gfortran_concat_string
S: add '-gfortran' in the GCC part of Makefile
Q3. misuse the command matlab mex with the command mex from pdfTeXK.
S: replace 'mex' by whole directory '/where your matlab is/bin/mex' in Makefile
Q4. multiple definition of `xerbla_'
S: set 'LAPACKBLASLIBS_PATH=/usr/lib/atlas' in the Makefile of matlab subfolder
conflict command in linux: matlab mex with mex from pdflatex
In the Ubuntu, two commands have same name. The way to solve this problem is to use command name with whole directory, e.g, /opt/matlab/bin/mex. You can use this whole name instead of short name "mex" in the Makefile.
Subscribe to:
Posts (Atom)