-
C++实现的SLIC超像素分割matlab可调用函数mexw32文件的_matlab代码
资源介绍
SLIC超像素分割原作者只提供C++代码,matlab遍寻不到。而超像素分割作为许多应用的第一步,不应该在其上花费太多功夫。鉴于C翻译成matlab比较麻烦运行又慢,最好的方式是混合编程,将C++程序封装好供matlab直接调用,以方便在matlab上进行后续的研究工作。
声明:仅供学习交流之用。
本文件只是封装好的mex文件,不是具体的matlab代码。不提供针对算法的学习,仅提供在matlab环境下的调用以完成SLIC超像素分割的功能。
调用格式如下:
I = imread('你要读的图像路径');
[height,width,ch]=size(I);
J = zeros(height,width,'uint32');
K = uint32(I);
J = K(:,:,1).*65536 + K(:,:,2).*256 + K(:,:,3);
k=100; %希望划分的超像素数(大概的数目,最终的结果不一定与此相等)
m=10; %兼容参数,取值10-40)
[klabels,numlabels] = SLICformatlab(J, k, m); %输出:标号矩阵,label数量