当前位置: 首页 > 网络知识

OpenCV3.2图像分割 实例3:KMeans图像分割

时间:2026-01-29 09:25:28
1 #include <opencv2/opencv.hpp> 2 #include <iostream> 3 4 using namespace cv; 5 using namespace std; 6 7 int main(int argc, char** argv) 13 namedWindow("input image", CV_WINDOW_AUTOSIZE); 14 imshow("input image", src); 15 16 Scalar colorTab[] = ; 23 24 int width = srcols;//图像的列 25 int height = src.rows;//图像的行 26 int dims = srchannels();//图像的通道数 27 28 // 初始化定义 29 int sampleCount = width*height;//获取图像的像素点数 30 int clusterCount = 4;//要分类块数 31 Mat points(sampleCount, dims, CV_32F, Scalar(10));//定义样本数据 32 Mat labels; 33 Mat centers(clusterCount, 1, points.type());//定义中心点(浮点数) 34 35 // RGB 数据转换到样本数据 36 int index = 0; 37 for (int row = 0; row < height; row++) 45 } 46 47 // 运行KMeans 48 TermCriteria criteria = TermCriteria(TermCriteria::EPS + TermCriteria::COUNT, 10, 0.1); 49 kmeans(points, clusterCount, labels, criteria, 3, KMEANS_PP_CENTERS, centers);//尝试3次 50 51 // 显示图像分割结果 52 Mat result = Mat::zeros(src.size(), src.type()); 53 for (int row = 0; row < height; row++) 61 } 62 for (int i = 0; i < centers.rows; i++) 68 69 imshow("KMeans Image Segmentation Demo", result); 70 waitKey(0); 71 return 0; 72 }

注:中心点是相对于图像RGB像素值而求定的位置。



上一篇:ITK 实例2 连接门限对脑部MHA文件进行三维分割
下一篇:ITK 实例11 边缘保留平滑滤波对脑部MHA文件进行三维滤波
OpenCV
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素