Opencv 实现FCM聚类,通过文章可以学习到Opencv 自定义函数返回矩阵的方式,以及多参数返回:形参返回方式

本文是作者随笔,附带学习的注释:

主要函数:输入是矩阵图像(例如512*512的单通道图像),返回方式是形参返回

void ClustFCM(cv::InputArray image, cv::OutputArray U,cv::OutputArray obj_fcn, cv::OutputArray center,int cluster_n, float * option)
{//输出:
//center----聚类中心 2x1的矩阵
//U----隶属度矩阵 矩阵
//obj_fcn----目标函数值矩阵

Mat data = image.getMat();
int data_n = data.rows;//样本数
int in_n = data.cols;//特征维度
int expo = option[0];      //隶属度矩阵U的指数
int max_iter = option[1]; // 最大迭代次数
float min_impro = option[2]; // 隶属度最小变化量, 迭代终止条件
int display = option[3]; // 每次迭代是否输出信息标志
initfcm(cluster_n, data_n, U); //输出U,初始化隶属度矩阵(子函数1)

Mat obj_fcn_begin = Mat::zeros(max_iter, 1, CV_32F);//初始化目标函数矩阵

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值