网站域名申请自己建立公司网站 怎样做

张小明 2026/1/11 11:54:42
网站域名申请,自己建立公司网站 怎样做,移动端适配 wordpress,wordpress数据库连接文件文章目录 0 简介1 Kmeans聚类算法基本原理2 基于Kmeans图像分割算法流程4 代码运行结果及评价5 最后 0 简介 今天学长向大家分享一个毕业设计项目 毕业设计 基于Kmeans的图像分割算法软件设计 项目运行效果#xff1a; 毕业设计 基于kmean的图像分割#x1f9ff; 项目分享…文章目录0 简介1 Kmeans聚类算法基本原理2 基于Kmeans图像分割算法流程4 代码运行结果及评价5 最后0 简介今天学长向大家分享一个毕业设计项目毕业设计 基于Kmeans的图像分割算法软件设计项目运行效果毕业设计 基于kmean的图像分割 项目分享:见文末!1 Kmeans聚类算法基本原理K-Means算法的思想很简单对于给定的样本集按照样本之间的距离大小将样本集划分为K个簇。让簇内的点尽量紧密的连在一起而让簇间的距离尽量的大。以彩色图像为例基于彩色图像的RGB三通道为xyz轴建立空间直角坐标系那么一副图像上的每个像素点与该空间直角坐标系建立了一 一映射双射的关系。从空间直角坐标系中随机取 k 个点作为 k个簇的各自的中心。计算所有像素点到k个簇心的距离并将所有像素点划分至与其距离最小的簇类。自此聚类完成。其中距离定义为欧氏距离其中rgb分别表示红绿蓝三通道r1g1b1为彩色图片中某像素点r0g0b0表示某簇类的簇心。2 基于Kmeans图像分割算法流程Note彩色图像的操作是基于一个三维空间1、加载图像获取图像的所有像素点并将其转换为样本数据。2、开始迭代a)、初始化簇心坐标。a)、更新簇心坐标遍历样本数据中的数据点并计算数据点与所有簇心的距离。对于某数据点计算得到的与所有簇类的欧氏距离中取欧氏距离最小所对应的簇类作为该数据点对应的类。c)、计算更新后的簇心坐标与更新前的簇心坐标的均方误差。若均方误差仍大于某阈值则重复b)反之结束迭代。Kmeans的详细算法流程参考博文https://www.cnblogs.com/pinard/p/6164214.html三、代码主函数部分1、加载图片​Mat src, dst; src imread(J20.jpg); namedWindow(输入图像, WINDOW_AUTOSIZE); imshow(输入图像, src);2、初始化颜色图像分割后需要上色​Scalar colorTab[] { Scalar(0,0,255), Scalar(0,255,0), Scalar(255,0,0), Scalar(0,255,255), Scalar(255,0,255), };3、初始化簇类数并将所有的像素点全部转换为样本数据​int sampleCount width*height; int clusterCount 5; Mat points(sampleCount, dims, CV_32F, Scalar(10)); //将彩色图像的像素点转换为样本数据 int index 0; for (int row 0; row height; row) { for (int col 0; col width; col) { index row*width col; Vec3b bgr src.atVec3b(row, col); points.atfloat(index, 0) static_castint(bgr[0]);//b points.atfloat(index, 1) static_castint(bgr[1]);//g points.atfloat(index, 2) static_castint(bgr[2]);//r } }4、利用Kmeans算法对样本数据分类​centers, feature Kmeans(points, clusterCount, sampleCount);5、显示图像分割后的结果​//显示图像分割结果 Mat result Mat::zeros(src.size(), src.type()); int index1 0; for (int row 0; row height; row) { for (int col 0; col width; col) { index1 row*width col; int label feature.atfloat(index1, 3); result.atVec3b(row, col)[0] colorTab[label][0]; result.atVec3b(row, col)[1] colorTab[label][1]; result.atVec3b(row, col)[2] colorTab[label][2]; } } imshow(基于Kmeans聚类的图像分割, result);四、代码子函数部分1、初始化聚类中心​//初始化簇心 Mat centers Mat::zeros(clusterCount, 1, CV_32FC3);//4行3列 centers.atfloat(0, 0) 150; centers.atfloat(0, 1) 180; centers.atfloat(0, 2) 200; centers.atfloat(1, 0) 20; centers.atfloat(1, 1) 25; centers.atfloat(1, 2) 37; centers.atfloat(2, 0) 80; centers.atfloat(2, 1) 100; centers.atfloat(2, 2) 140; centers.atfloat(3, 0) 226; centers.atfloat(3, 1) 234; centers.atfloat(3, 2) 235;2、利用Kmeans算法进行迭代​Mat feature Mat::zeros(sampleCount, 1, CV_32FC4); float *distance new float[sampleCount]; int epoch 0; while (true) { for (int row 0; row points.rows; row) { for (int i 0; i centers.rows; i) { distance[i] pow((points.atfloat(row, 0) - centers.atfloat(i, 0)), 2) pow((points.atfloat(row, 1) - centers.atfloat(i, 1)), 2) pow((points.atfloat(row, 2) - centers.atfloat(i, 2)), 2); } float min distance[0]; int flag 0; for (int i 0; i clusterCount; i) { if (min distance[i]) { min distance[i]; flag i; } } feature.atfloat(row, 0) points.atfloat(row, 0); feature.atfloat(row, 1) points.atfloat(row, 1); feature.atfloat(row, 2) points.atfloat(row, 2); feature.atfloat(row, 3) flag; } float new_center_r 0, new_center_g 0, new_center_b 0; float *temp new float[clusterCount]; for (int i 0; i clusterCount; i) { int num 0; float sum_center_r 0, sum_center_g 0, sum_center_b 0; for (int row 0; row sampleCount; row) { if (feature.atfloat(row, 3) i) { sum_center_b sum_center_b feature.atfloat(row, 0); sum_center_g sum_center_g feature.atfloat(row, 1); sum_center_r sum_center_r feature.atfloat(row, 2); num; } } new_center_b sum_center_b / num; new_center_g sum_center_g / num; new_center_r sum_center_r / num; temp[i] pow((new_center_b - centers.atfloat(i, 0)), 2) pow((new_center_g - centers.atfloat(i, 1)), 2) pow((new_center_r - centers.atfloat(i, 2)), 2); centers.atfloat(i, 0) new_center_b; centers.atfloat(i, 1) new_center_g; centers.atfloat(i, 2) new_center_r; } float total 0; float mean_square_error 0; for (int i 0; i clusterCount; i) { total total temp[i]; } mean_square_error total / 4; if (epoch % 1 0) cout epoch epoch \terror of mean square mean_square_error endl; if (mean_square_error 0.01) break; epoch; }4 代码运行结果及评价输入图片2、迭代过程3、聚类结果如上图从左至右分别为Blue、Green、Red通道从上之下分别是五个簇心的坐标像素值。4、图像分割结果如上图图像被清晰的分为了五个部分背景为蓝色、歼20的迷彩涂装分为了红黄两色颜色最暗的地方为紫色颜色次暗的地方为绿色。另外对于大数据经典的Kmeans算法显然处理速度太慢但对于彩色图像使用经典Kmeans算法对其进行分割其所耗时长在可接受的范围内。至此完全实现了基于Kmeans聚类算法的图像分割经验证其结果与利用OpenCV提供的API得到的效果完全一致5 最后项目运行效果 项目分享:见文末!
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

如何做网站充值做外贸网站买海外域名

未来5年,AGI(通用人工智能)可能取代80%的重复性脑力工作,但同时也将创造数百万个新岗位。你会是进化者还是被淘汰者? 一、AGI不再是科幻:大模型正重塑你的职业未来 “公司上周裁掉了整个初级程序员团队&am…

张小明 2026/1/9 5:56:21 网站建设

软装设计案例网站现成的手机网站做APP

vxe-table高效使用终极指南:从问题诊断到一键解决方案 【免费下载链接】vxe-table vxe-table vue 表单/表格解决方案 项目地址: https://gitcode.com/gh_mirrors/vx/vxe-table 还在为vxe-table复杂的配置项头疼吗?面对官方文档时感到无从下手&…

张小明 2026/1/9 2:26:53 网站建设

潍坊百度网站wordpress忘记密码

App Volumes部署与配置全解析 1. AppStack部署最佳实践 在环境中部署AppStack时,有一些最佳实践需要遵循。 1.1 每台虚拟机的AppStack数量 当前最佳实践是将每台虚拟桌面机同时挂载的AppStack数量限制在12 - 15个以内。理论上,一台虚拟桌面机可配置4个虚拟SCSI适配器,每…

张小明 2026/1/10 10:50:55 网站建设

网站建设怎么加音乐高端 建站

去年7月,某化妆品企业在23天的短期活动中,实现销售额约1400万元,积累参与用户50万名。活动以一款标价87元的口红为核心产品,通过“拼团返积分”机制促进用户参与。该机制的实施可分为以下步骤:一、搭建线上销售平台企业…

张小明 2026/1/9 1:28:53 网站建设

昆明公司网站开发win10 wordpress

论文链接:https://arxiv.org/pdf/2512.08765 项目链接:https://github.com/ali-vilab/Wan-Move亮点直击Wan-Move,一个用于图像到视频生成中运动控制的框架。与需要运动编码的现有方法不同,它通过编辑条件特征注入运动引导,无需添加…

张小明 2026/1/10 7:05:11 网站建设

网站建设公司整站源码网页设计公司宣传事例

QPSK调制解调 FPGA设计,有详细实验文档 调制模块里最核心的其实是IQ映射。举个栗子,当输入两比特数据"00"时,咱们直接给I路赋值0.707,Q路也0.707——别小看这个数,这是归一化后的最大幅度值。Verilog实现起来…

张小明 2026/1/7 8:05:13 网站建设