C++ opencv简单图像的分割

Opencv中简单的图像分割

图像分割:将图像分成若干有相似区域性质的区域。
主要方法:基于阈值、基于区域、基于边缘、基于聚类、基于图论、基于深度学习。
参考链接: opencv图像分割方法.

本文头文件及命名空间:

#pragma once
#include <opencv2\opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

阈值分割

基于阈值分割,使用opencv中二值化函数,threshold(),选择不同的类型和阈值对图像进行分割。本质是二值化,只能区分与分割一些像素值间隔打、色彩单一的简单图像。
在这里插入图片描述

src : 输入图像
dst : 输出图像
thresh : 阈值
maxval : 最大值
type : 二值化类型

不同类型的具体取值由下列函数得出:
在这里插入图片描述
测试代码:

//阈值分割
	Mat m1 = imread(path4, 1);
	Mat m2, m3, m4;
	//图像灰度化,也可以不灰度化,这里为了让结果更容易理解
	cvtColor(m1, m1, COLOR_BGR2GRAY);
	//类型1
	threshold(m1, m2, 127, 255, THRESH_BINARY);
	//类型2
	threshold(m1, m3, 127, 255, THRESH_BINARY_INV);
	//类型3
	threshold(m1, m4, 127, 255, THRESH_TRUNC);
	imshow("truth image" , m1);
	imshow("1 image", m2);
	imshow("2 image", m3);
	imshow("3 image", m4);
	waitKey(0);

测试结果(图像来源网络,侵权告知立即删除)
在这里插入图片描述

二值化函数阈值分割的结果由所选取的阈值和类型决定,只能分割简单图像。


分水岭分割

分水岭分割使用分水岭方法,实现图像不同区域的分割。

  • 2
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值