OpenCV学习笔记-图像分割

图像分割,采用金字塔实现,该函数为,

[cpp]  view plain copy
  1. PyrSegmentation  
  2. 用金字塔实现图像分割  
  3. void cvPyrSegmentation( IplImage* src, IplImage* dst,  
  4.                         CvMemStorage* storage, CvSeq** comp,  
  5.                         int level, double threshold1, double threshold2 );  
  6. src  
  7. 输入图像.  
  8. dst  
  9. 输出图像.  
  10. storage  
  11. Storage: 存储连通部件的序列结果  
  12. comp  
  13. 分割部件的输出序列指针 components.  
  14. level  
  15. 建立金字塔的最大层数  
  16. threshold1  
  17. 建立连接的错误阈值  
  18. threshold2  
  19. 分割簇的错误阈值  
  20. 函数 cvPyrSegmentation 实现了金字塔方法的图像分割。金字塔建立到 level 指定的最大层数。如果 p(c(a),c(b))<threshold1,则在层 i 的象素点 a 和它的相邻层的父亲象素 b 之间的连接被建立起来,  
  21. 定义好连接部件后,它们被加入到某些簇中。如果p(c(A),c(B))<threshold2,则任何两个分割 A 和 B 属于同一簇。  
  22. 如果输入图像只有一个通道,那么  
  23. p(c¹,c²)=|c¹-c²|.   
  24. 如果输入图像有单个通道(红、绿、兰),那么  
  25. p(c¹,c²)=0,3·(c¹r-c²r)+0,59·(c¹g-c²g)+0,11·(c¹b-c²b) .   
  26. 每一个簇可以有多个连接部件。 图像 src 和 dst 应该是 8-比特、单通道 或 3-通道图像,且大小一样  

例题为:

[cpp]  view plain copy
  1. #include "StdAfx.h"  
  2. #include "highgui.h"    
  3. #include"cv.h"    
  4. //superdont  
  5. //blog.csdn.net/superdont  
  6. int main(int argc,char ** argv)    
  7. {    
  8.     IplImage * src = cvLoadImage("lena.png");    
  9.     //常见错误,如果图像本身不能被要求次数的2整除,则会报错终止,一定注意  
  10.     IplImage * dst=cvCreateImage(cvGetSize(src), src->depth,src->nChannels);    
  11.     CvMemStorage * stoage = cvCreateMemStorage(0) ;    
  12.     CvSeq* comp=NULL;    
  13.     int level = 4 ;   //进行n层采样    
  14.     double threshold1 = 150 ;    
  15.     double threshold2 = 30 ;  //  
  16.     cvPyrSegmentation(src,dst, stoage,&comp,level, threshold1,threshold2) ;    
  17.     cvNamedWindow("src") ;    
  18.     cvNamedWindow("dst") ;    
  19.     cvShowImage("src",src);    
  20.     cvShowImage("dst",dst);    
  21.     cvWaitKey(0) ;    
  22.     cvDestroyAllWindows();    
  23.     return 0;    
  24. }    
实现结果:


参考文献:

1.学习OpenCV,刘瑞祯,于仕祺,清华大学出版社,pp.152-155

2.http://blog.csdn.net/cartoonface/article/details/5998543

3.http://www.opencv.org.cn/index.php/Cv%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86#PyrSegmentation


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值