

采用GMM分割也可以。
代码演示:
#include<iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
Mat mat_to_sample(Mat &image);
int main(int argc, char** argv)
{
Mat src = imread("E:/技能学习/opencv图像分割/test.jpg");
if (src.empty())
{
cout << "could not load image!" << endl;
return -1;
}
namedWindow("input image", WINDOW_AUTOSIZE);
imshow("input image", src);
//数据组装
Mat points = mat_to_sample(src);
//运行KMeans
int numCluster = 4;
Mat labels;
Mat centers;
TermCriteria criteria = TermCriteria(TermCriteria::EPS + TermCriteria::COUNT, 10, 0.1);
kmeans(points, numCluster, labels, criteria, 3, KMEANS_PP_CENTERS, cen

本文详细介绍了如何使用GMM(高斯混合模型)进行图像分割,展示了从读取图像、数据预处理、K-means聚类到背景替换和遮罩生成的完整过程。通过Matlab代码实例,读者可以理解并应用于实际图像处理中。
最低0.47元/天 解锁文章
1088

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



