First, the platform:
Win7 X64,matlab 2012a x64, pro-test run.
Ncut is an image cutting method, and then review the specific algorithm, many of the online process is Jianbo Shi This 2000, the name should be: Data clustering with normalized Cuts
The problem is that the prevalence is his 2004 revision, and then his official web is also the latest version 2009, then there is no problem, but with the MATLAB update, no longer support Windows directly call. dll files, and its published code Windows platform is using DLLs, if there is The. h header file for the function can also partially modify the call, the problem is no AH.
The main problem before repair is that the function cannot be called: SPARSIFYC spmtimesd.
To the next 2009 years of code, the author is really lazy, the relevant code or 2004, there is no update, just add other code, 2009 version has a bunch of packaged CPP function can not see AH, fortunately there are writers have written guidelines, but the guide is not all. According to the guidelines to switch the decompression directory run Compiledir_simple, but the first run is all wrong, which has the author said can be ignored.
Error:
Error:could not detect a compiler on local system which can compile the specified input file (s) ...
The Compiledir_simple statement is actually a dynamic-link library that runs on the current platform, and DLL belongs to the dynamic-link library, but not all. The statement has, in fact, is probably missing the configuration C + + compiler. Run:
Mex-setup
Select according to the guidelines. I'm using Microsoft Visual C + + in F:\Program Files (x86) \microsoft Visual Studio 10.0
Then run the compile command:
Compiledir_simple
This I run time still will have partial error, but the lack of success!
Explain the next post-MEXW64, referring to the use of the WINDOWS64 platform, MEXGLX refers to the Linux platform, Mexmac refers to on the Mac platform.
At this time the production is put into the function directory, NCUTW, I mainly use is based on the similarity matrix to do ncut, so based on the diagram of the ncut I do not run.
In the directory to run or error, because the code is based on 32-bit writing, so you need to further modify the code, will be all:
Int32 (), Int64 ().
At this time, successfully run, I ran 20 data sets, no problem, based on the diagram of the ncut I did not run, used to see it again.
With the update of MATLAB, a lot of code needs to be updated, such as the above situation, in fact, there is a simple solution is the next old version of Matlab.
However, a version of 2010 or earlier uses int64, which is possible, but does not support arithmetic operations.
For example Int64 (a)-int64 (b), the subtraction error is prompted.
Attached to another author:
Http://www.cis.upenn.edu/~jshi/software/
Ncut matlab code bug fix