openCV的彩色图像分割
基于openCV的
我想把一副图像根据色彩信息进行分割,想用Mean-shift算法,不过opencv好像
没有类似的例子
没有找到,我就用cvPyrSegmentation(金字塔分割)来代替,问题是我怎么知道
分割后有多少种颜色?
还有我想根据颜色的不同对各个区域单独处理,请问怎么做。。。
谢谢~
[解决办法]
mean-shift算法会得到三个数组,分别存有每个区域的颜色信息(modes)、像素总数(MPC)及图像像素标签图(label)
金字塔分割应该是按照分辨率从低到高对图像进行多次分割,利用低分辨率分割后的信息来优化计算。
不管用什么算法,最终得到的图都是有标签和区域颜色的,应该都可以处理。
[解决办法]
不好意思,本来以为OpenCV的meanshift用的是作者的源码,刚看了下,openCV的函数并没有提供输出图像之外的信息。
你是必须要用openCV吗?如果不是必须的话可以去用ms的源码:
http://www.caip.rutgers.edu/riul/research/code/EDISON/index.html
或者用blepo这个computer vision库 http://www.ces.clemson.edu/~stb/blepo/,自带了ms源码
openCV你可以看看有没有ms的源码,如果有msImageProcessor.h这个文件的话你可以在ms分割后调用GetRegions(int**, float**, int**)函数来获取分割的 <* regionCount *> <* modes *> <* labels *> <* modePointCounts *> (具体见源码说明)。