0penCV_(Watershed Segmenter)使用 分水岭算法 对图像进行分割
来源:互联网 发布:淘宝买水果拒收 编辑:程序博客网 时间:2024/05/19 06:51
//使用 分水岭算法 对图像进行分割
cv::Mat image = cv::imread("../../aTestImage/cow.jpg", 1);cv::Mat image1 = cv::imread("../../aTestImage/cow.jpg", 0);cv::Mat binary;cv::threshold(image1, binary, 60, 255, cv::THRESH_BINARY_INV);//阈值化得到二值化图像binarycv::namedWindow("image", 1);cv::imshow("image", image);cv::Mat fg;cv::erode(binary, fg, cv::Mat(), cv::Point(-1, -1), 6);//用点Point对图像腐蚀6次 // cv::namedWindow("fg", 1);//cv::imshow("fg", fg);cv::Mat bg;cv::dilate(binary, bg, cv::Mat(), cv::Point(-1, -1), 6);//用点Point对图像膨胀6次cv::threshold(bg, bg, 1, 128, cv::THRESH_BINARY_INV);//cv::namedWindow("bg", 1);//cv::imshow("bg", bg);cv::Mat markers(binary.size(), CV_8U, cv::Scalar(0));markers = fg + bg;cv::namedWindow("markers", 1); cv::imshow("markers", markers);WatershedSegmenter segmenter;segmenter.setMarkers(markers);//通过对二值图像的腐蚀+膨胀,获得标记图像markers = segmenter.process(image); // markers是一个数组,图像显示为纯黑cv::namedWindow("Segmentation");//显示分割图像cv::imshow("Segmentation", segmenter.getSegmentation());cv::namedWindow("Watersheds");//显示边界图像cv::imshow("Watersheds", segmenter.getWatersheds());cv::waitKey(0);return 0;}class WatershedSegmenter{public:WatershedSegmenter();~WatershedSegmenter();void setMarkers(const cv::Mat &markerImage){markerImage.convertTo(markers,CV_32S);}cv::Mat process(const cv::Mat &image){cv::watershed(image, markers);return markers;}cv::Mat getSegmentation(){cv::Mat tmp;markers.convertTo(tmp, CV_8U);//等价于(tmp, CV_8U,1, 0) //double alpha=1, double beta=0return tmp;}cv::Mat getWatersheds(){cv::Mat tmp;markers.convertTo(tmp, CV_8U,255,255);//只显示边界...return tmp;}private:cv::Mat markers;};
0 0
- 0penCV_(Watershed Segmenter)使用 分水岭算法 对图像进行分割
- 使用分水岭算法对图像进行分割
- OpenCV2 使用分水岭算法对图像分割的个人理解 cv::watershed()
- opencv分水岭算法对图像进行分割
- Opencv分水岭算法——watershed自动图像分割用法
- Opencv分水岭算法——watershed自动图像分割用法
- 计算机视觉之图像分割——分水岭算法WaterShed
- Opencv分水岭算法——watershed自动图像分割用法
- 基于边缘的图像分割——分水岭算法(watershed)算法分析(附opencv源码分析)
- matlab之watershed分水岭分割算法
- 分水岭算法(Watershed Algorithm)
- 分水岭算法(Watershed Algorithm)
- 分水岭算法(Watershed Algorithm)
- 分水岭算法(Watershed Algorithm)
- 分水岭算法(Watershed Algorithm)
- 分水岭算法(Watershed Algorithm)
- 分水岭算法(Watershed Algorithm)
- opencv-用分水岭算法进行图像分割
- Android assents
- hibernate测试
- JOIN和UNION区别
- 【DragonBoard 410c】悲催的开箱体验
- linux内存映射函数mmap
- 0penCV_(Watershed Segmenter)使用 分水岭算法 对图像进行分割
- TensorFlow笔记之MNIST例程详解
- 理解ansible里的item和with_items
- 集合
- org.apache.commons.lang.StringUtils方法讲解
- OpenGL编程指南6:顶点数组
- poj 2606 Rabbit hunt
- oracle数据库创建表空间,创建用户,给用户授权
- js 跨域问题解决方案