LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
opencv简浅-分水岭算法
小陌白 2018-07-17

分水岭算法可以将图像中的边缘转化成“山脉,将均匀区域转换为”山谷“,这样有助于分隔目标。watershed(InputArray image,InputOutputArray markers)第一个参数是输入图像,需为8为三通道的彩色图像。第二个参数为函数调用后的输出结果,为32位单通道图像标记结果。

#include<opencv2/opencv.hpp>

#include<iostream>

using namespace cv;

using namespace std;

int main()

{

Mat src,dst,canny_dst;

    src = imread("1.jpg");

imshow( "原图" ,src);

cvtColor(src,dst,CV_RGB2GRAY);

Canny(dst,canny_dst,100,255);

//寻找轮廓

vector<vector<Point>>contours;

    vector<Vec4i>hierarchy;

findContours(canny_dst,contours,hierarchy,CV_RETR_CCOMP,CV_CHAIN_APPROX_SIMPLE);

//分水岭算法第二个参数

Mat marks(src.size(),CV_32S);

marks=Scalar::all(0);

//绘制轮廓

for(int i=0;i < contours.size();i++)

{

Scalar color(rand()&255,rand()&255,rand()&255);

drawContours(marks,contours,i,color,2,8,hierarchy);

}

watershed(src,marks);

convertScaleAbs(marks,marks);

    imshow("分水岭算法",marks);

waitKey();

return 0;

}



推荐文章
评论(0)
联系我们|招贤纳士|移动客户端|风格模板|官方博客|侵权投诉 Reporting Infringements|未成年人有害信息举报 0571-89852053|涉企举报专区
网易公司版权所有 ©1997-2024  浙公网安备 33010802010186号 浙ICP备16011220号-11 增值电信业务经营许可证:浙B2-20160599
网络文化经营许可证: 浙网文[2022]1208-054号 自营经营者信息 工业和信息化部备案管理系统网站 12318全国文化市场举报网站
网信算备330108093980202220015号 网信算备330108093980204230011号
分享到
转载我的主页