SLIC超像素分割MATLAB代码执行时的一些细节
来源:互联网 发布:网络宣传怎么做 编辑:程序博客网 时间:2024/05/23 11:45
代码网址:http://ivrl.epfl.ch/research/superpixels#SLICO
下载了SLIC超像素分割的MATLAB程序:
“Mex file and MATLAB demo script”
下载解压之后,主程序是“SLICdemo.m”,它会调用C语言程序“slicmex.c”。
所以运行程序的时候,首先通过MATLAB将C/C++函数编译成MEX函数,在MATLAB中就可以调用了。方法是:
MATLAB的command window下输入:
>>mex silcmex.c
会通知你选择编译器:
Select a compiler:
[1] Microsoft Visual C++ 2010 in d:\ruanjiananzhuang\VS2010UltimTrialCHS
[0] None
Compiler: 1
输入1,回车,这时就会报出警告和错误,警告不用管,主要解决错误:
slicmex.c(387) : error C2275: “mwSize”: 将此类型用作表达式非法
......
这个错误是最先出现的最大的错误,先解决它。
用文本编辑器打开文件“slicmex.c”,处理(387)行:
mwSize numdims = mxGetNumberOfDimensions(prhs[0]) ;
改法就是:将numdims的声明和定义拆开:
mwSize numdims;
numdims = mxGetNumberOfDimensions(prhs[0]) ;
再将其声明与(351)行定义的mexFunction函数下面的一大串变量声明放在一起。截图如下:
保存文件,再返回到MATLAB的命令窗口处,重新编译c程序:
>> mex slicmex.c
再运行程序:
>> SLICdemo
网上有人给出了原理,我把文字复制过来:
地址:http://www.cppblog.com/colorful/archive/2015/02/05/209744.aspx
error C2275: “XXX”: 将此类型用作表达式非法
error C2275: “XXX”: 将此类型用作表达式非法
表达式非法,这个错误是由于c的编译器要求将变量的申明放在一个函数块的头部,而c++没有这样的要求造成的。
解决的办法就是把变量的申明全部放在变量的生存块的开始。
- SLIC超像素分割MATLAB代码执行时的一些细节
- SLIC超像素分割
- SLIC超像素分割
- SLIC超像素分割详解
- SLIC超像素分割详解
- SLIC超像素分割算法
- SLIC超像素分割slicmex源代码在windows下matlab中mex出错的修正
- SLIC超像素分割详解(二):关键代码分析
- SLIC超像素分割详解(二):关键代码分析
- SLIC超像素分割算法研究(代码可下载)
- SLIC超像素分割的算法介绍和源码分析
- VLFeat SLIC超像素分割(Cpp版)
- SLIC图像超像素分割算法解析
- VLFeat SLIC超像素分割(Cpp版)
- SLIC图像超像素分割算法解析
- SLIC超像素分割详解(一):简介
- SLIC 超像素分割详解(三):应用
- Qt之VLFeat SLIC超像素分割(Cpp版)
- java 如何理解泛型类(1)
- JUC集合---CopyOnWriteArraySet
- java8-[CompletableFuture]
- 使用storcli点亮服务器上的故障磁盘
- 物联网安全专家齐聚ICA联盟 多项IoT身份认证安全标准出炉
- SLIC超像素分割MATLAB代码执行时的一些细节
- 讯飞语音合成Wav,以及MediaPlayer的一些坑,SeekBar相关知识点
- 揭秘react生态体系
- django显示SQL语句
- JavaSe——6、String、StringBuffer、StringBuilder
- 多线程编程:线程同步
- hibernate的使用()
- qt中关于中文乱码的问题
- 【物联网安全】物联网安全主要的现有安全问题