2023亚太杯数学建模A题思路代码分析

已经完成A题完整思路代码,文末名片查看获取

A题就是我们机器学习中的一个图像识别,他是水果图像识别,就是苹果识别的一个问题,我们用到的方法基本是使用深度学习中的卷积神经网络来进行识别和分类

问题一:基于附件1中提供的可收获苹果的图像数据集,提取图像特征,建立数学模型,计算每幅图像中的苹果的数量,并绘制附件1中所有苹果的分布直方图。

我们看问题一,要求计算每张图像中苹果的数量。解决这个问题的关键在于准确地识别图像中每一个苹果,并区分它们。可以看到,附件1给出的图片它的背景都是不一样的,我们要区分苹果和它自身环境的背景,要去增强图片的一个对比度,让他们能够更好的区分开来,可以使用使用OpenCV结合一些高级的图像分割算法,例如基于深度学习的分割方法或更复杂的传统图像处理技术。

import cv2
import numpy as np
import globdef preprocess_image(image):# 转换到HSV颜色空间hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)# 定义苹果颜色的范围lower_red1 = np.array([0, 100, 100])upper_red1 = np.array([10, 255, 255])lower_red2 = np.array([160, 100, 100])upper_red2 = np.array([180, 255, 255])# 根据颜色阈值创建掩码mask1 = cv2.inRange(hsv, lower_red1, upper_red1)mask2 = cv2.inRange(hsv, lower_red2, upper_red2)mask = cv2.bitwise_or(mask1, mask2)# 形态学操作改善掩码kernel = np.ones((5, 5), np.uint8)mask = cv2.erode(mask, kernel, iterations=2)mask = cv2.dilate(mask, kernel, iterations=2)return maskdef count_apples(image_path):image = cv2.imread(image_path)processed_image = preprocess_image(image)# 寻找轮廓contours, _ = cv2.findContours(processed_image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 计算苹果数量return len(contours)# 读取图像
image_paths = glob.glob('你本地的图像文件夹路径')  # 修改为你的图像文件夹路径
total_apples = 0for path in image_paths:total_apples += count_apples(path)print(f"总苹果数量: {total_apples}")

问题二:根据附件1中提供的可收获苹果的图像数据集,以图像的左下角为坐标原点,确定每个图像中苹果的位置,并绘制附件1中所有苹果的几何坐标的二维散点图。

问题二要我们去评估苹果的一个位置,这个问题核心在于准确地定位图像中的苹果。最合适的方法是使用深度学习中的目标检测算法。会用到的就是卷积神经网络CNN,里面会用到包括YOLO和Faster R-CNN。这些算法能够在图像中同时识别出多个苹果并给出它们的位置。为了训练这样的模型,我们需要一个带有标注信息的数据集,即每个苹果在图像中的确切位置和尺寸。可以用“边界框”来表示,边界框是围绕苹果的矩形框,用两个坐标(左上角和右下角)来描述。这个就像在地图上标记重要地点一样一旦我们有了这些带标记的数据,就可以开始训练我们的模型了

在训练模型之前,对图像进行预处理是关键。这包括调整图像大小以适应模型输入、可能的归一化步骤(使像素值在0到1之间),以及其他图像增强技术,去增强对比度和颜色平衡。

问题三:基于附件1中提供的可收获苹果的图像数据集,建立数学模型,计算每幅图像中苹果的成熟度,并绘制附件1中所有苹果成熟度分布的直方图。

估计苹果成熟度的问题可以看作是一个复合问题,它涉及到图像处理和模式识别的多个方面。我们首先需要识别出影响成熟度的关键图像特征。这些包括苹果的颜色、纹理、大小和形状。颜色是一个直观的特征,因为成熟度往往与苹果的颜色变化密切相关。纹理分析可以揭示成熟苹果表面的微妙变化,而大小和形状可能也与成熟度有关。我们可以使用一些高级的图像处理技术,比如局部二值模式(LBP),来提取苹果表面的细微纹理特征。他们能够捕捉到成熟度变化过程中苹果表面纹理的微妙变化。成熟度判定,我们依旧是采用卷积神经网络来自动提取和学习影响成熟度的特征。

问题四:根据附件1中提供的收获苹果的图像数据集,计算每个图像左下角的苹果的二维面积为3坐标原点,估算苹果的质量,并绘制附件1中所有苹果的质量分布的直方图。

这个问题有点复杂,需要我们去估计苹果质量的,它会涉及到将二维图像信息转换为对三维物体质量的估计。我们首先需要从图像中估计苹果的真实大小。这会涉及到立体视觉技术,我们要根据附件中提供的多角度的图像,来利用这些图像重建苹果的三维模型,去准确地估计它的尺寸。

更多思路代码↓

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

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

相关文章

展现天津援疆工作成果 “团结村里看振兴”媒体采风团走进和田

央广网天津11月19日消息(记者周思杨)11月18日,由媒体记者、书法和摄影家、旅行社企业代表等40余人组成的“团结村里看振兴”媒体采风团走进新疆和田。在接下来的一周时间里,采风团将走访天津援疆和田地区策勒县、于田县、民丰县乡村振兴示范村&#xff0…

HTML CSS登录网页设计

一、效果图: 二、HTML代码: <!DOCTYPE html> <!-- 定义HTML5文档 --> <html lang="en"> …

在全球碳市场中崭露头角的中碳CCNG

在全球气候治理的大背景下&#xff0c;中国碳中和发展集团有限公司&#xff08;简称中国碳中和&#xff09;正在成为全球碳交易市场的一个重要参与者。随着国际社会对碳排放的日益关注&#xff0c;中国碳中和凭借其在碳资产开发、咨询与管理等领域的深厚积累&#xff0c;正成为…

acedInitGet 函数

acedInitGet 函数是 AutoCAD 的 C++ API(ObjectARX)中用于初始化下一次用户输入操作选项的函数。以下是该函数签名及其组成部分的中文翻译和解释: extern "C" int acedInitGet(int val,const ACHAR * kwl );cpp 复制 extern “C”:指定函数使用 C 语言链接(lin…

LeetCode93. Restore IP Addresses

文章目录 一、题目二、题解 一、题目 A valid IP address consists of exactly four integers separated by single dots. Each integer is between 0 and 255 (inclusive) and cannot have leading zeros. For example, “0.1.2.201” and “192.168.1.1” are valid IP add…

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

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

杨传辉:从一体化架构,到一体化产品,为关键业务负载打造一体化数据库

在刚刚结束的年度发布会上&#xff0c;OceanBase正式推出一体化数据库的首个长期支持版本 4.2.1 LTS&#xff0c;这是面向 OLTP 核心场景的全功能里程碑版本&#xff0c;相比上一个 3.2.4 LTS 版本&#xff0c;新版本能力全面提升&#xff0c;适应场景更加丰富&#xff0c;有更…

web前端之若依框架图标对照表、node获取文件夹中的文件名,并通过数组返回文件名、在html文件中引入.svg文件、require、icon

MENU 前言效果图htmlJavaScripstylenode获取文件夹中的文件名 前言 需要把若依原有的icon的svg文件拿到哦&#xff01; 注意看生成svg的路径。 效果图 html <div id"idSvg" class"svg_box"></div>JavaScrip let listSvg [404, bug, build, …

02 如何快速读懂一个C++程序

系列文章目录 02 如何快速读懂一个C程序 目录 系列文章目录 文章目录 前言 一、C 的基本语法 二、如何看懂一个c程序&#xff1f; 1.了解程序结构 2.C 中的分号 & 语句块 3.C 注释 总结 前言 C 是一种高级编程语言&#xff0c;它具有丰富的特性&#xff0c;用于…

CentOS7安装Docker运行环境

1 引言 Docker 是一个用于开发&#xff0c;交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开&#xff0c;从而可以快速交付软件。借助 Docker&#xff0c;您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付&#xff0c;…

11.前缀和、异或前缀和、差分数组练习题

前缀和 前缀和可以用来求满足条件的子数组的和、个数、长度 更多前缀和题目&#xff1a; 560. 和为 K 的子数组 974. 和可被 K 整除的子数组 1590. 使数组和能被 P 整除 523. 连续的子数组和 525. 连续数组 560. 和为 K 的子数组 中等 给你一个整数数组 nums 和一个整数…

在新疆乌鲁木齐的汽车托运

在新疆乌鲁木齐要托运的宝! 看过来了 找汽车托运公司了 连夜吐血给你们整理了攻略!! ⬇️以下&#xff1a; 1 网上搜索 可以在搜索引擎或专业的货运平台上搜索相关的汽车托运公司信息。在网站上可以了解到公司的服务范围、托运价格、运输时效等信息&#xff0c;也可以参考其他车…

2024年的云趋势:云计算的前景如何?

本文讨论了2024年云计算的发展趋势。 适应复杂的生态系统、提供实时功能、优先考虑安全性和确保可持续性的需求正在引领云计算之船。多样化的工作负载允许探索通用的公共云基础设施范例之外的选项。由于需要降低成本、提高灵活性和降低风险&#xff0c;混合云和多云系统越来越受…

RabbitMQ 消息队列编程

安装与配置 安装 RabbitMQ 读者可以在 RabbitMQ 官方文档中找到完整的安装教程&#xff1a;Downloading and Installing RabbitMQ — RabbitMQ 本文使用 Docker 的方式部署。 RabbitMQ 社区镜像列表&#xff1a;https://hub.docker.com/_/rabbitmq 创建目录用于映射存储卷…

YOLOv5 分类模型 预处理 OpenCV实现

YOLOv5 分类模型 预处理 OpenCV实现 flyfish YOLOv5 分类模型 预处理 PIL 实现 YOLOv5 分类模型 OpenCV和PIL两者实现预处理的差异 YOLOv5 分类模型 数据集加载 1 样本处理 YOLOv5 分类模型 数据集加载 2 切片处理 YOLOv5 分类模型 数据集加载 3 自定义类别 YOLOv5 分类模型…

Bin、Hex、ELF、AXF的区别

1.Bin Bin文件是最纯粹的二进制机器代码, 或者说是"顺序格式"。按照assembly code顺序翻译成binary machine code&#xff0c;内部没有地址标记。Bin是直接的内存映象表示&#xff0c;二进制文件大小即为文件所包含的数据的实际大小。 BIN文件就是直接的二进制文件&…

关于python 语音转字幕,字幕转语音大杂烩

文字转语音 Python语音合成之第三方库gTTs/pyttsx3/speech横评(内附使用方法)_python_脚本之家 代码示例 from gtts import gTTStts gTTS(你好你在哪儿&#xff01;,langzh-CN)tts.save(hello.mp3)import pyttsx3engine pyttsx3.init() #创建对象"""语速"…

目前比较好用的护眼台灯,小学生适合的护眼台灯推荐

随着技术的发展&#xff0c;灯光早已成为每家每户都需要的东西。但是灯光不好可能会对眼睛造成伤害是很多人没有注意到的。现在随着护眼灯产品越来越多&#xff0c;市场上台灯的选择越来越多样化&#xff0c;如何选择一个对眼睛无伤害、无辐射的台灯成为许多家长首先要考虑的问…

【C++初阶】四、类和对象(构造函数、析构函数、拷贝构造函数、赋值运算符重载函数)

相关代码gitee自取&#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 【C初阶】三、类和对象 &#xff08;面向过程、class类、类的访问限定符和封装、类的实例化、类对象模型、this指针&#xff09; -CSDN博客 引入&#xff1a;类的六个默认成员函数…

如何使用springboot服务端接口公网远程调试——实现HTTP服务监听

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;网络奇遇记、Cpolar杂谈 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 二. 内网穿透2.1 安装…