这里写自定义目录标题
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);
测试结果(图像来源网络,侵权告知立即删除)

二值化函数阈值分割的结果由所选取的阈值和类型决定,只能分割简单图像。
分水岭分割
分水岭分割使用分水岭方法,实现图像不同区域的分割。在分割的过程中,

本文介绍了OpenCV中的图像分割技术,包括阈值分割、分水岭分割和Canny算子边缘分割。阈值分割通过二值化实现简单图像分割;分水岭分割利用图像梯度和轮廓信息进行区域分割;Canny算子用于边缘检测。对于复杂图像,深度学习方法如全卷积网络在图像分割中表现出色。

2022

被折叠的 条评论
为什么被折叠?



