OpenCV3.2图像分割 实例7:基于分水岭图像分割


1 #include <opencv2/opencv.hpp> 2 #include <iostream> 3 4 using namespace cv; 5 using namespace std; 6 7 Mat watershedCluster(Mat &image, int &numSegments); 8 //参数分别为分割后图像,分割块数,输入原图 9 void createDisplaySegments(Mat &segments, int numSegments, Mat &image); 10 int main(int argc, char** argv) 16 namedWindow("input image", CV_WINDOW_AUTOSIZE); 17 imshow("input image", src); 18 19 int numSegments; 20 Mat markers = watershedCluster(src, numSegments); 21 createDisplaySegments(markers, numSegments, src); 22 waitKey(0); 23 return 0; 24 } 25 26 Mat watershedCluster(Mat &image, int &numCp) 50 51 Mat markers(dist.size(), CV_32S); 52 markers = Scalar::all(0); 53 for (int i = 0; i < contours.size(); i++) 56 circle(markers, Point(5, 5), 3, Scalar(255), 1); 57 58 // 分水岭变换 59 watershed(image, markers); 60 numCp = contours.size(); 61 return markers; 62 } 64 void createDisplaySegments(Mat &markers, int numSegments, Mat &image) 73 74 // 颜色填充与最终显示 75 Mat dst = Mat::zeros(markers.size(), CV_8UC3); 76 int index = 0; 77 for (int row = 0; row < markers.rows; row++) 83 else 86 } 87 } 88 imshow("分水岭图像分割演示",dst); 89 return; 90 }



上一篇:ITK 实例5 领域连接算法对脑部PNG图像进行二维分割

下一篇:ITK 实例15 测量主动轮廓算法对脑部PNG图像进行二维分割


OpenCV
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图