Vedaldi‘s SIFT in MATLAB - error in sift_compile - matlab

When I tried to compile Vedaldi's SIFT algorithm in MATLAB, I got the following error while compiling:
sift_compile
D:\PROGRA~1\MATLAB\R2010A~1\BIN\MEX.PL: Error: 'imsmooth.c' not found.
??? Error using ==> mex at 222
Unable to complete successfully.
Error in ==> sift_compile at 33
mex('imsmooth.c',opts{:}) ;
I did got mex to run on other cases, the compiler I used is VS2008. And the path of the imsmooth.c and other source code is also included in the MATLAB path. Could someone give me some hints how should I get it work?

C:\Program Files\MATLAB\R2011a\sift\
add in the pathnames helps!

Related

Error using caffe Unknown command 'get_weights'

I run the demo code of RCNN with matcaffe, but I met an error which confused me for a while:
Error using caffe
Unknown command 'get_weights'
Error in rcnn_load_model (line 36)
rcnn_model.cnn.layers = caffe('get_weights');
Also, I check the directory of caffe matlab, there is not get_weights function. Do anyone know how to solve that? Thank you.

Why am I getting errors when I try to run the "Normalized cuts" demo?

I am trying to use the normalized cuts package from [http://www.cis.upenn.edu/~jshi/software/Ncut_9.zip][1] (on Windows 7 - MATLAB R2010a 32 bits), but it's not working. I'm trying to run the demo called "Ncut Clustering demo" and I got the following error:
??? Undefined function or method 'sparsifyc' for input arguments of type 'double'.
Error in ==> ncut at 41
W = sparsifyc(W,dataNcut.valeurMin);
Error in ==> ncutW at 9
[NcutEigenvectors,NcutEigenvalues] = ncut(W,nbcluster);
Error in ==> demoNcutClustering at 27
[NcutDiscrete,NcutEigenvectors,NcutEigenvalues] = ncutW(W,nbCluster);
I already put the NCUT9 dir in the path so this is not the problem I guess, and I already compile the MEX files with the command: compileDir_simple(mydir).

Why can't MATLAB deploytool output exe file?

deploytool works well until creating exe file using mbuild then get this error:
Executing command: mbuild -O -v -output "U1" -I"e:\Mat2009\work\ntst1\U1\src" "e:\Mat2009\work\ntst1\U1\src\U1_main.c" "e:\Mat2009\work\ntst1\U1\src\U1_delay_load.c" "e:\Mat2009\work\ntst1\U1\src\U1_mcc_component_data.c" -link exe -env MCR_DELAYLOAD=/delayload:mclmcrrt710.dll -env
MCR_DELAYLIB=delayimp.lib -outdir "e:\Mat2009\work\ntst1\U1\src"
Error: An error occurred while shelling out to mbuild (error code = -1).
Unable to build executable.
??? Error using ==> mcc
Error executing mcc, return status = 1 (0x1).
How can I resolve this error?
This error looks similar to an error I encountered once (after upgrading to 2012b), I cannot recall the source but I found two potential solutions:
Make sure there are no spaces in the path to the compiler
Try building a few times and cross your fingers
Given the time frame I had I chose to go for option two and after 5-10 attempts it suprisingly worked.
have found that COMSPEC env. var had a wrong value, so I deleted the wrong path, restarted MATLAB then it worked well.

rtwintgt install

I type in Matlab command window rtwintgt -install and get the following error:
??? Undefined function or variable 'twintgt'. [sic]
» rtwintgt -install
You are going to install the Real-Time Windows Target kernel.
Do you want to proceed? [y] : y
??? Failed to copy the kernel to Windows system directory.
Access is denied.
Error in ==> C:\MATLABR11\toolbox\rtw\windows\private\rtwtinst.dll
Error in ==> C:\MATLABR11\toolbox\rtw\windows\rtwintgt.m (rtwt_setup)
On line 74 ==> reboot = rtwtinst('install', srcpath);
Error in ==> C:\MATLABR11\toolbox\rtw\windows\rtwintgt.m
On line 24 ==> rtwt_setup
What should I do? And is it important to install this file?
My problem is when I call a matlab function from a file in my code using (#myfunction),
I get error?
As suggested in the comments, check if you have admin rights on your machine as well as if your license includes the Real-Time Windows Target.

Converting MATLAB files to Octave

I have a series of experiments that were written for MATLAB, but recently we are trying to run them through Octave instead. I realize they are mostly compatible, but I have been running into a few problems, and none of the online FAQs or directions I have found have addressed these at all. It's complicated a bit because there are multiple .m files that interact; however, for now I am going to focus on the main program. Anyway, so when I try to run the file (MLP.m) through octave, I get the following errors in the Terminal window:
error: dir: expecting directory or filename to be a char array
error: called from:
error: /Applications/Octave.app/Contents/Resources/share/octave/3.2.3/m/miscellaneous/dir.m at line 128, column 5
error: /Applications/MATLAB_R2008a/toolbox/psychoacoustics/MLParameters.m at line 86, column 7
error: /Applications/MATLAB_R2008a/toolbox/psychoacoustics/MLP.m at line 9, column 3
The lines it is referencing are as follows:
1)
d = dir([cd myslash 'Experiments_MLP' myslash '*.m']);
2)
s = MLParameters;
What about these lines is incompatible with Octave? I can't find anything online that indicates that these won't work.
After that, the Terminal window gives me this batch of nonsense:
dyld: Library not loaded: /usr/X11/lib/libfreetype.6.dylib
Referenced from: /usr/X11R6/lib/libfontconfig.1.dylib
Reason: Incompatible library version: libfontconfig.1.dylib requires version 13.0.0 or later, but libfreetype.6.dylib provides version 10.0.0
dyld: Library not loaded: /usr/X11/lib/libfreetype.6.dylib
Referenced from: /usr/X11R6/lib/libfontconfig.1.dylib
Reason: Incompatible library version: libfontconfig.1.dylib requires version 13.0.0 or later, but libfreetype.6.dylib provides version 10.0.0
/Applications/Gnuplot.app/Contents/Resources/bin/gnuplot: line 71: 1077 Trace/BPT trap GNUTERM="${GNUTERM}" GNUPLOT_HOME="${GNUPLOT_HOME}" PATH="${PATH}" DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH}" HOME="${HOME}" GNUHELP="${GNUHELP}" DYLD_FRAMEWORK_PATH="${DYLD_FRAMEWORK_PATH}" GNUPLOT_PS_DIR="${GNUPLOT_PS_DIR}" DISPLAY="${DISPLAY}" GNUPLOT_DRIVER_DIR="${GNUPLOT_DRIVER_DIR}" "${ROOT}/bin/gnuplot-4.2.6" "$#"
/Applications/Gnuplot.app/Contents/Resources/bin/gnuplot: line 71: 1083 Trace/BPT trap GNUTERM="${GNUTERM}" GNUPLOT_HOME="${GNUPLOT_HOME}" PATH="${PATH}" DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH}" HOME="${HOME}" GNUHELP="${GNUHELP}" DYLD_FRAMEWORK_PATH="${DYLD_FRAMEWORK_PATH}" GNUPLOT_PS_DIR="${GNUPLOT_PS_DIR}" DISPLAY="${DISPLAY}" GNUPLOT_DRIVER_DIR="${GNUPLOT_DRIVER_DIR}" "${ROOT}/bin/gnuplot-4.2.6" "$#"
error: you must have gnuplot installed to display graphics; if you have gnuplot installed in a non-standard location, see the 'gnuplot_binary' function
I have GNUPlot installed, and I checked the gnuplot_binary function, which didn't give me any answers. GNUPlot is installed in my /Applications directory, along with Octave itself. Why shouldn't this work? The README file that came with GNUPlot didn't indicate a special directory for it to be installed in. What about the the dyld library not loaded errors? Is that related to the GNUPlot problem, or is it something else?
Anyway, thanks for your help
I know you already solved your problem, but if you have problems again here are some links with basic information about the differences between Matlab and Octave:
Porting programs from Matlab to Octave
Differences between Octave and MATLAB
Addressing your first error, it's easier to explain with an example:
dirName = '/some/path'; %# base directory
filesPath = fullfile(dirName, 'MLP', '*.m'); %# full path string
d = dir(filesPath); %# expand/enumerate files
for i=1:numel(d)
disp( d(i).name )
end
You also could have built the path using string concatenation yourself:
%# '/some/path/MLP/*.m'
filesPath = [dirName filesep 'MLP' filesep '*.m'];
The above should work for both MATLAB and Octave