- K-Means分割
背景去除
遮罩生成
遮罩模糊
背景融合:高斯模糊
混合通道输出
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
Mat mat_to_samples(Mat& image);
int main(int argc, char** argv)
{
Mat src, dst;
src = imread("../path.jpg");
if (src.empty())
{
cout << "could not load image1..." << endl;
return -1;
}
namedWindow("src", WINDOW_AUTOSIZE);
imshow("src", src);
Mat SamplePoint_temp = mat_to_samples(src);
int numCluster = 4;
Mat labels;
Mat centers(numCluster, 1, SamplePoint_temp.type());
TermCriteria criteria = TermCriteria(TermCriteria::EPS + TermCriteria::COUNT, 10, 0.1);
kmeans(SamplePoint_temp, numCluster, labels, criteria, 3, KMEANS_PP_CENTERS, centers);
Mat mask = Mat::zeros(src.size(), CV_8UC1);
int width = src.cols;
int height = src.rows;
int index = src