k聚类简单实现(灰度分割,分黑白)

news/2024/11/8 15:14:29/

加载图像:

k聚类分割后图像,分成黑白两类,故意把结果黑色类染红,核对发现是正确的:

  具体算法如下:

float globu1 = 40;
        float globu2 = 180;

  public void k均值迭代法更新(int imgw, int imgh, byte[] img)
        {
            //1,归类
            List<Point> QArea1 = new List<Point>();
            List<Point> QArea2 = new List<Point>();
            for (int i = 0; i < imgw; i++)
                for (int j = 0; j < imgh; j++)
                {
                    int pos = j * imgw + i;
                    if (Math.Abs(img[pos] - globu1) - Math.Abs(img[pos] - globu2) < 0)
                    {
                        Point tempt = new Point(i, j);
                        QArea1.Add(tempt);
                    }
                    else
                    {
                        Point tempt = new Point(i, j);
                        QArea2.Add(tempt);
                    }
                }
            //2,更新均值
            float u1 = 0; float u2 = 0;
            for (int i = 0; i < QArea1.Count; i++)
            {
                int pos = QArea1[i].Y * imgw + QArea1[i].X;
                u1 += img[pos];
            }
            for (int i = 0; i < QArea2.Count; i++)
            {
                int pos = QArea2[i].Y * imgw + QArea2[i].X;
                u2 += img[pos];
            }
            u1 = u1 / QArea1.Count;
            u2 = u2 / QArea2.Count;
            if (Math.Abs(globu1 - u1) < 2 || Math.Abs(globu2 - u2) < 2)
            {
                return;
            }
            else
            {
                globu1 = u1;
                globu2 = u2;
                k均值迭代法更新(imgw, imgh, img);
            }
        }


http://www.ppmy.cn/news/240487.html

相关文章

uniApp页面通讯大汇总,如何页面之间传值

文章目录 往期回顾页面通讯出现场景通讯方案通讯方案小结 如何父传子页面跳转时序图 uni.\$on和eventChannel.on使用推荐 往期回顾 uniapp 踩坑记录 uni.$on为什么不能修改data里面的数据 页面通讯 出现场景 我们在一个页面往另一个页面跳转的时候&#xff0c;希望跳转的页…

华为申请注册华为鸿蒙商标,华为申请注册“华为鸿蒙”商标,自研操作系统或将实现?-控制器/处理器-与非网...

华为的手机芯片取名为“麒麟”&#xff1b;基带芯片取名“巴龙”&#xff1b;服务器芯片取名“鲲鹏”&#xff1b;服务器平台&#xff0c;取名“泰山”&#xff1b;路由器芯片取名“凌霄”&#xff1b;人工智能芯片取名“昇腾”&#xff1b;5G 服务器芯片取名“天罡”。 除此之…

华为注册鸿蒙商标的故事,华为注册“鸿蒙”商标:意在把传说化为现实奇迹

5 月 25 日&#xff0c;华为的手机芯片取名为 " 麒麟 "&#xff1b;基带芯片取名 " 巴龙 "&#xff1b;服务器芯片取名 " 鲲鹏 "&#xff1b;服务器平台&#xff0c;取名 " 泰山 "&#xff1b;路由器芯片取名 " 凌霄 "&…

Wi-Fi 6关键技术解析

Wi-Fi&#xff0c;是由Wi-Fi联盟进行技术认证和商标授权的一种无线通信技术。它背后的技术标准&#xff0c;则是由美国的电气电子工程师协会&#xff08;IEEE&#xff09;制定的802.11系列协议。 Wi-Fi联盟&#xff08;全称&#xff1a;国际Wi-Fi联盟组织&#xff0c;英语&…

华为 鸿蒙出处,华为商标名“鸿蒙”原来出自《山海经》,网友直呼:“太燃了”...

之前,华为在东莞篮球中心,举行的开发者大会上发布了鸿蒙操作系统。 那么,它到底能干嘛呢?在当日的发布会上,华为CEO余承东表示:如果安卓系统不能用了,鸿蒙OS随时可以用在手机上!此言一出,瞬间点燃了大家期待已久的心!

鸿蒙系统欧洲注册,华为鸿蒙系统曝光后华为欧洲注册商标 为鸿蒙系统国外版打基础...

描述 日前&#xff0c;国家知识产权局商标局网站显示&#xff0c;华为已经申请注册“华为鸿蒙”商标&#xff0c;并标注该商品可用于操作系统程序。 无独有偶&#xff0c;华为鸿蒙系统曝光后华为欧洲注册商标。 “鸿蒙”在中国神话传说中指的是盘古在昆仑山开天辟地之前的一团自…

《智能路由器开发指南》——1.3 开源嵌入式操作系统比较

本节书摘来自异步社区《智能路由器开发指南》一书中的第1章&#xff0c;第1.3节&#xff0c;作者 张永智&#xff0c;李章明&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.3 开源嵌入式操作系统比较 开源嵌入式操作系统&#xff0c;其字面意思有3点&am…

苹果商标计算机辅助设计,苹果 Apple MacBook Pro 15英寸 2019 详细评测报告

苹果 Apple MacBook Pro 15英寸 2019 详细评测报告 2019-09-02 14:13:12 9点赞 18收藏 2评论 我们的承诺:欧美专业实验室;多国联合测试;没有广告软文! 为了向大家提供最专业公正的专家评级和建议,我们与欧洲,北美,澳大利亚和新西兰的20个消费者组织合作。笔记本电脑测试…