superpixel的算法有很多,opencv中也包含了很多,我找了一个比较经典的:SLIC
这是跑的github上的一个superpixel的例子:https://github.com/np-csu/SLIC-superpixel-with-OpenCV\
mkdir build,cd build,cmake ../,make就可以了
1._ASSERT( y < m_height && x < m_width && y >= 0 && x >= 0 );
_ASSERT(klabels[j] >= 0);
这两个行都注释掉
2.在char fname[_MAX_FNAME];前加int _MAX_FNAME = 1000; 因为没声明赋值这个变量
3._splitpath(filename.c_str(), NULL, NULL, fname, extn);注释掉
demo.cpp
4.img = imread("..\\sample_image\\bird.jpg");加cv::
5.sprintf_s(result_name, 128, "..\\result_image\\result_%d.jpg", numSuperpixel);注释掉
其他要改的就是在demo.cpp中改成你要处理的图片,跑程序直接使用build里面的./demo就可以了
但整体跑出来的效果不是特别好
这个网址的superpixel的效果很不错,也有代码,但用edge跑出来的结果相当不错,就没去跑这个了
感想:超像素在一些点云的文章中也有提及,以后可以继续关注一下.SLIC这种搜索方式的算法,我觉得还是可以在之后的求上边缘中继续用到,可以继续关注一下.