2023年亚太杯数学建模A题水果采摘机器人的图像识别功能(matlab 部分代码)

news2024/11/16 17:37:22

对于1-4问针对的是附录1 中的数据

clc;
close all;
clear;
% 图像文件夹路径
folder_path = 'E:/新建文件夹/yatai/Attachment/Attachment 1/';
% 图像文件列表
image_files = dir(fullfile(folder_path, '*.jpg')); % 假设所有图片都是jpg格式

% 解析文件名中的数字,并转换为数值类型
numbers = cellfun(@(x) sscanf(x, '%d.jpg'), {image_files.name});


% 根据解析出的数字对文件列表进行排序
[~, sorted_idx] = sort(numbers);
image_files = image_files(sorted_idx);
% 存储每张图片苹果数量的数组
apple_counts = zeros(length(image_files), 1);

1,需要对原始的数据预操作,进行数据增强增强

% 应用Retinex算法
    sigma = 150; % 高斯滤波器的标准差,可以调整
    enhanced_img = singleScaleRetinex(img, sigma);

2.转换色彩空间 进行直方图均值化

 % 转换到YCbCr色彩空间进行直方图均衡化
img_ycbcr = rgb2ycbcr(enhanced_img);
Y_channel = img_ycbcr(:,:,1); % Y通道
img_ycbcr(:,:,1) = histeq(Y_channel); % 对Y通道进行直方图均衡化

3.LAb色彩空间

% 将处理后的图像转换回RGB色彩空间
    img_eq = ycbcr2rgb(img_ycbcr);
    
    % 转换到LAB色彩空间
    img_lab = rgb2lab(img);
    % 分别获取L*, a*, b*通道
    L_channel = img_lab(:,:,1);  % L* 亮度通道
    a_channel = img_lab(:,:,2);  % a* 通道,从绿色到红色
    b_channel = img_lab(:,:,3);  % b* 通道,从蓝色到黄色

4.k-means聚类

% 使用k-means算法在a_channel进行颜色聚类
    numOfClusters = 2; % 你想要的聚类数量
    [cluster_idx, cluster_center] = kmeans(a_channel_reshape, numOfClusters, 'Distance', 'sqEuclidean', 'Replicates', 3);
    
    % 将聚类索引重塑回图像的大小
    clustered_img = reshape(cluster_idx, rows, cols);
    
    clustered_img_color = label2rgb(clustered_img);

更多参考资料见下方: 

 ​​​​​​​建模忠哥

基于1-4问生成的附录2 中的训练集标签用于后续yolov5对苹果的分割检测 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1246428.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如果把数组对应的值放到对象的对应key对应的值中

开发中 遇到一个数组,需要把数组中的value放到一个对象中 对象的key对应到数组的name, 话不多说 ,直接上代码 this.result.forEach(item > {this.screen[Object.keys(this.screen).find(e > e item.name)] item.value}) 思路是这…

堪比数据恢复大师软件推荐,恢复数据很简单!

“作为一个经常丢失数据的电脑用户来说,我觉得我非常需要一些简单有效的数据恢复方法。大家有什么比较靠谱的软件推荐吗?非常感谢!” 在数字化时代,数据的存储是比较重要的。很多用户都会选择将重要的文件保存在电脑上。如果数据丢…

行业案例:如何打造高效内容团队

内容团队如何适应当下热点高频更新的时代?Zoho Projects项目管理软件能为内容团队带来什么?本文以真实用户案例为您详细解答! 背景介绍: 该漫画团队已有十余年的奋斗历史,以原创漫画和绘本内容创作为主,出…

数据库实验五 数据库设计

数据库实验五 数据库设计 一、实验目的二、实验内容三、实验内容四、验证性实验五、设计性实验 一、实验目的 1.了解E-R图构成要素以及各要素图元。 2.掌握概念模型E-R图的绘制方法。 3.掌握概念模型向逻辑模型的转换原则和步骤。 4.运用sql编程实现 二、实验内容 1.选取一个…

风口下的危与机:如何抓住生成式AI黄金发展期?

回顾AI的发展历程,我们见证过几次重大突破,比如2012年ImageNet大赛的图像识别,2016年AlphaGo与李世石的围棋对决,这些进展都为AI的普及应用铺设了道路。而ChatGPT的出现,真正让AI作为一个通用的产品,走入大…

【SpringCloud】微服务的扩展性及其与 SOA 的区别

一、微服务的扩展性 由上一篇文章(没看过的可点击传送阅读)可知, 微服务具有极强的可扩展性,这些扩展性包含以下几个方面: 性能可扩展:性能无法完全实现线性扩展,但要尽量使用具有并发性和异步…

基于51单片机超声波测距汽车避障系统

**单片机设计介绍, 基于51单片机超声波测距汽车避障系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的超声波测距汽车避障系统是一种用于帮助汽车避免碰撞和发生事故的设备,以下是一个基本…

H5(uniapp)中使用echarts

1,安装echarts npm install echarts 2&#xff0c;具体页面 <template><view class"container notice-list"><view><view class"aa" id"main" style"width: 500px; height: 400px;"></view></v…

PSP - 从头搭建 抗原类别 (GPCR) 的 蛋白质结构预测 项目流程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/134595717 GPCRs&#xff08;G Protein-Coupled Receptors&#xff0c;G蛋白偶联受体&#xff09;&#xff0c;又称为7次跨膜受体&#xff0c;是细…

ubuntu22.04 arrch64版在线安装java环境

脚本 #安装java#!/bin/bashif type -p java; thenecho "Java has been installed."else#2.Installed Java , must install wgetwget -c https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-arm64-vfp-hflt.tar.gz;tar -zxvf ./jdk-8u151-linux-arm6…

《微信小程序开发从入门到实战》学习二十八

3.4 开发参与投票页面 3.4.3 使用radio单项选择器组件 逻辑层的数据已经准备好&#xff0c;现在实现视图层的页面展示。 投票的标题、&#xff0c;描述、截止日期、是否匿名等信息通过view和text组件就可以展示。比较特别的是投票选项的展示&#xff0c;涉及到单选还是多选&…

概要设计文档案例分享

1引言 1.1编写目的 1.2项目背景 1.3参考资料 2系统总体设计 2.1整体架构 2.2整体功能架构 2.3整体技术架构 2.4运行环境设计 2.5设计目标 3系统功能模块设计 3.1个人办公 4性能设计 4.1响应时间 4.2并发用户数 5接口设计 5.1接口设计原则 5.2接口实现方式 6运行设计 6.1运行模块…

Python武器库开发-前端篇之html概述(二十八)

前端篇之html概述(二十八) html概述 HTML5是构建Web内容的一种语言描述方式。HTML5是互联网的下一代标准&#xff0c;是构建以及呈现互联网内容的一种语言方式&#xff0e;被认为是互联网的核心技术之一。HTML产生于1990年&#xff0c;1997年HTML4成为互联网标准&#xff0c;…

视频剪辑新招:批量随机分割,分享精彩瞬间

随着社交媒体的普及&#xff0c;短视频已经成为分享生活、交流信息的重要方式。为制作出吸引的短视频&#xff0c;许多创作者都投入了大量的时间和精力进行剪辑。然而&#xff0c;对于一些没有剪辑经验的新手来说&#xff0c;这个过程可能会非常繁琐。现在一起来看云炫AI智剪批…

宣传技能培训2——《图片后期处理与制作》光影魔术师:一小时速成Lightroom图片后期软件 + 案例分析

图片后期处理与制作&#xff1a;从理论到实践 写在最前面背景介绍夜间拍摄及其后期捕捉瞬间更重要 深入探索Lightroom&#xff1a;提升图片处理效率与质量软件设置与优化图片处理与预览GPU加速导入图片到LightroomLightroom界面概览图片筛选与比较删除不需要的图片 Lightroom进…

C#,轻量化Json序列化、反序列化及自动格式化的组件SimpleJson源代码与使用实例(可放弃Newtonsoft.Json了)

1 JSON 的用法 C#中常用 json 保存与分享数据。其中的过程主要是&#xff1a; &#xff08;1&#xff09;程序内的 Class 或 List 或 Hashtable ... -> 序列化为 json 文件或 stream&#xff1b; &#xff08;2&#xff09;加密、传送、接收、解密、&#xff08;保存 或 不…

腾讯云发布新一代基于AMD处理器的星星海云服务器实例SA5

基础设施的硬实力&#xff0c;愈发成为云厂商的核心竞争力。 11月24日&#xff0c;腾讯云发布了全新一代星星海服务器。基于自研服务器的高密设计与硬件升级&#xff0c;对应云服务器SA5是全球首家搭载第四代AMD EPYC处理器&#xff08;Bergamo&#xff09;的公有云实例&#…

通过内网穿透本地MariaDB数据库,实现在公网环境下使用navicat图形化工具

公网远程连接MariaDB数据库【cpolar内网穿透】 文章目录 公网远程连接MariaDB数据库【cpolar内网穿透】1. 配置MariaDB数据库1.1 安装MariaDB数据库1.2 测试局域网内远程连接 2. 内网穿透2.1 创建隧道映射2.2 测试随机地址公网远程访问3. 配置固定TCP端口地址3.1 保留一个固定的…

麒麟KYSEC使用方法05-命令设置密码强度

原文链接&#xff1a;麒麟KYSEC使用方法05-命令设置密码强度 hello&#xff0c;大家好啊&#xff0c;今天给大家带来麒麟KYLINOS的kysec使用方法系列文章第五篇内容----使用命令设置密码强度&#xff0c;密码强度策略有两个文件需要修改&#xff0c;pwquality.conf/login.defs&…

利用mvnrepository找到jssc(或其他特定包)的jar包下载本地并导入JAVA项目

文章目录 一、mvnrepository下载jar包&#xff08;找到依赖&#xff09;第一步&#xff1a;进入mvnrepository第二步&#xff1a;搜索名称第三步&#xff1a;进入详情第四步&#xff1a;选择版本第五步&#xff1a;点击下载 二、jar包添加到项目操作流程成功标志 一、mvnreposi…