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

对于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对苹果的分割检测

相关推荐
Saniffer_SH1 分钟前
搭载高性能GPU的英伟达Nvidia DGX Spark桌面性能小怪兽国内首台开箱视频!
人工智能·深度学习·神经网络·ubuntu·机器学习·语言模型·边缘计算
Tiandaren1 小时前
自用提示词01 || Prompt Engineering || 学习路线大纲 || 作用:通过启发式的问题来带动学习
人工智能·pytorch·深度学习·nlp·prompt·1024程序员节
屈冠成1 小时前
C语言数组:编辑世界的坚固桥梁
c语言·开发语言·算法
应用市场1 小时前
STM32卡尔曼滤波算法详解与实战应用
人工智能·stm32·算法
启诚科技1 小时前
树上二分(树的重心)
c++·算法·二分·树的重心
大象耶1 小时前
自然语言处理前沿创新方向与技术路径
论文阅读·人工智能·深度学习·计算机网络·机器学习
风筝在晴天搁浅2 小时前
代码随想录 617.合并二叉树
数据结构·算法
AICodeThunder2 小时前
【S组篇】C++知识点总结(1):并查集基础
c语言·数据结构·c++·算法·图论
南方的狮子先生2 小时前
【逻辑回归】从线性模型到逻辑回归
算法·机器学习·逻辑回归
闻缺陷则喜何志丹3 小时前
【排序】P9127 [USACO23FEB] Equal Sum Subarrays G|普及+
c++·算法·排序·洛谷