在Android系统中,I2C(Inter-Integrated Circuit)是一种通信协议,用于连接微控制器和其他设备,例如传感器、显示屏、实时时钟等。为了便于开发者和系统管理员在Android平台上调试和管理I2C设备,存在一套名为i2c-tools的开源工具集。这套工具集包含了几个实用的命令行工具,如i2cdetect、i2cdump、i2cget和i2cset,它们各自承担着不同的功能。 `i2cdetect`是用于检测和扫描I2C总线上的设备。通过运行这个工具,你可以查看哪些设备连接在指定的I2C总线上,并获取它们的地址。这对于查找和确认硬件连接问题非常有帮助。例如,命令`i2cdetect -y 1`会扫描I2C总线1上的设备,并显示一个表格,其中包含已识别设备的地址。 `i2cdump`工具用于从I2C设备上读取数据。它能够显示设备内存空间的完整映射,提供了一个快速查看设备状态的方法。通过指定设备地址和范围,你可以获取特定区域的数据,比如`i2cdump -y 1 0x24`将从I2C总线1上地址为0x24的设备读取数据。 接着,`i2cget`命令用于从I2C设备读取单个或连续的字节。它可以按照不同格式(如读取字节、16位半字或32位字)进行操作。例如,`i2cget -y 1 0x3F 0x00`将从总线1上地址为0x3F的设备读取地址0x00处的字节值。 `i2cset`工具则用于向I2C设备写入数据。你可以用它来设置设备的特定寄存器或者内存位置。例如,`i2cset -y 1 0x3F 0x00 0x12`将写入0x12到总线1上地址为0x3F的设备的0x00位置。 这四个命令在Android开发和调试过程中至关重要,因为它们提供了直接与I2C设备交互的能力,无需编写复杂的驱动程序。通过这些工具,开发者可以快速测试新硬件、诊断通信问题或监控设备状态。然而,要注意的是,使用这些工具通常需要root权限,因为I2C接口在Android系统中通常是受限的。 `i2c-tools`是Android系统中不可或缺的工具集合,对于任何涉及到I2C通信的开发、调试或维护工作,都是必不可少的。通过熟练掌握这些工具的用法,开发者可以更高效地处理与I2C设备相关的各种任务,提升工作效率。
2025-05-20 21:47:23 24KB Android i2ctools
1
在IT行业中,Thrift是一种高性能、可扩展的跨语言服务开发框架,由Facebook开源,现由Apache基金会维护。Thrift的主要目标是通过定义一种中间表示(IDL,接口定义语言)来构建可序列化数据结构和服务接口,使得不同编程语言之间可以进行高效、透明的通信。在本Java实现Thrift的Demo中,我们将深入理解Thrift的工作原理以及如何使用Java来实现它。 让我们了解Thrift的基本工作流程: 1. **接口定义**:使用Thrift IDL编写服务接口和数据类型。例如,你可以创建一个名为`Calculator`的服务,其中包含加、减、乘、除等方法,以及对应的请求和响应数据结构。 ```thrift service Calculator { i32 add(1:i32 num1, 2:i32 num2), i32 subtract(1:i32 num1, 2:i32 num2), i32 multiply(1:i32 num1, 2:i32 num2), i32 divide(1:i32 num1, 2:i32 num2) } ``` 2. **代码生成**:使用Thrift编译器将IDL文件转换为各种目标语言的源代码,包括Java。这会生成服务接口类(如`Calculator.java`)、协议处理类以及数据结构类。 3. **服务实现**:在Java中,你需要实现生成的服务接口。例如,创建一个`CalculatorServer`类,其中包含`Calculator`服务的所有方法的实现。 ```java public class CalculatorServer implements Calculator.Iface { @Override public int add(int num1, int num2) { return num1 + num2; } // 实现其他方法... } ``` 4. **服务器启动**:创建一个服务器实例,绑定到特定端口,并启动服务。通常会使用`TServer`抽象类的一个实现,如`TSimpleServer`或`TForkingServer`。 ```java TServerTransport serverTransport = new TServerSocket(9090); Calculator.Processor processor = new Calculator.Processor<>(new CalculatorServer()); TServer server = new TSimpleServer(serverTransport, processor); server.serve(); ``` 5. **客户端生成**:Thrift编译器同样会为客户端生成必要的代码。客户端可以使用这些类来创建服务的代理对象,与服务器进行通信。 6. **客户端调用**:在客户端代码中,创建一个`Calculator.Client`实例,连接到服务器,然后调用服务方法。 ```java TTransport transport = new TSocket("localhost", 9090); TProtocol protocol = new TBinaryProtocol(transport); Calculator.Client client = new Calculator.Client(protocol); transport.open(); int result = client.add(10, 20); transport.close(); System.out.println("Result: " + result); ``` 这个Java实现的Thrift Demo展示了如何利用Thrift进行跨语言通信。Thrift提供了一种高效的二进制序列化格式,使得数据在网络传输中占用更少的带宽,同时提供了丰富的服务接口定义,简化了多语言服务的开发。通过这种方式,开发者可以轻松地构建分布式系统,实现服务之间的高效通信。在实际应用中,Thrift常用于构建微服务架构,因为它能够很好地处理大规模、高性能的服务间通信需求。
2025-05-20 20:16:53 719KB java
1
在本文中,我们将深入探讨如何使用Windows上的Visual Studio C++进行蓝牙低功耗(Bluetooth Low Energy,简称BLE)客户端的开发。此项目提供了一个完整的源码示例,可以帮助开发者调试基于BLE的硬件设备,例如ESP32开发板。源码的稳定性和清晰的代码结构使其成为了一个值得信赖的工具。 我们要了解C++编程语言。C++是一种强大的、面向对象的编程语言,广泛应用于系统软件、游戏引擎、嵌入式系统和桌面应用等领域。在Windows平台上,Visual Studio是一个优秀的集成开发环境(IDE),支持C++开发,并提供了丰富的调试和代码编辑功能。 BLE技术是蓝牙技术的一个分支,旨在实现低功耗、短距离的无线通信。它特别适合于物联网(IoT)设备和移动设备之间的通信,如健康监测设备、智能家居产品等。BLE协议栈包括了广告、连接、服务发现、数据传输等一系列过程。 在Visual Studio中,为了编写BLE客户端程序,我们需要包含必要的蓝牙API,这些API通常由Windows操作系统提供。Windows 10引入了通用Windows平台(UWP)蓝牙API,使得开发者可以方便地访问蓝牙功能。在这个示例中,可能会使用到如`Windows.Devices.Bluetooth`、`Windows.Devices.Bluetooth.GenericAttributeProfile`等命名空间的类。 例如,`GattDeviceService`类用于代表BLE设备的服务,`GattCharacteristic`类则表示服务中的特性。通过这些对象,我们可以读取、写入特性的值,或者订阅特征值的更改通知。在连接到BLE设备后,通常会执行服务发现过程,找到感兴趣的服务和特性,然后根据需求进行操作。 为了建立与BLE设备的连接,我们需要扫描周围的设备并找到目标设备的蓝牙地址。`BluetoothLEDevice`类提供了扫描和连接设备的方法。连接成功后,可以使用`GattSession`类来管理连接,并进行数据交换。 在ESP32这样的开发板上,通常会有一个固件,该固件实现了BLE服务器的角色,提供服务和特性供客户端(如本示例中的程序)访问。在调试过程中,这个客户端工具可以帮助开发者验证固件的功能,检查数据传输是否正确,以及接收设备发送的数据。 在代码结构方面,一个典型的BLE客户端项目可能包含以下几个部分: 1. 设备扫描模块:负责查找可用的BLE设备。 2. 连接模块:连接到指定的BLE设备,并创建`GattSession`。 3. 服务发现模块:查找设备提供的服务及其特性。 4. 数据交互模块:读写特性值,或订阅特性变化。 5. 错误处理模块:处理可能出现的连接错误或通信异常。 通过这个源码示例,开发者不仅可以学习到如何在Windows平台上使用C++进行BLE客户端开发,还能了解到如何与不同类型的BLE设备进行交互。这将对理解和调试基于BLE的硬件开发项目大有裨益。由于源码的稳定性和清晰性,开发者可以快速上手,节约宝贵的开发时间。
2025-05-20 17:10:37 8KB windows visualstudio
1
标题中的“ut-890 485-usb能用驱动”指的是UT-890 485-USB设备的驱动程序,这是一款专为连接和通信串行设备设计的适配器,通常用于工业自动化、远程监控或者数据采集系统。在描述中再次提到了这个驱动程序是为Linux x64 (64-bit)操作系统设计的,意味着它适用于64位版本的Linux系统。 UT-890 485-USB驱动是将RS-485通信协议转换为USB接口的关键软件组件。RS-485是一种多点通信标准,常用于长距离、高速度的数据传输,尤其是在噪声较大的环境中。它的优点在于能够支持多个设备在同一总线上进行通信,且传输距离远超RS-232。 Linux作为开源的操作系统,对硬件的支持主要依赖于驱动程序。对于非标准或非常见硬件,如UT-890 485-USB,可能需要额外安装驱动来确保系统识别并能正常工作。这款驱动程序是专为64位Linux系统编写的,确保了在这样的平台上,用户可以顺利地将UT-890 485-USB适配器连接到他们的计算机,并通过USB接口与RS-485设备进行通信。 标签“ut-890 485-usb Linux”强调了这款驱动程序与这两种技术的关联性。UT-890 485-USB是硬件,而Linux是操作系统,标签清楚地指出了驱动的目标平台。 压缩包内的"Linux x64 (64-bit)"文件可能包含以下内容:驱动程序的安装包、设备的使用手册、配置示例或必要的库文件。安装过程一般包括解压文件、赋予执行权限、运行安装脚本,以及按照提示完成配置。用户在安装前应确保其Linux发行版与驱动程序兼容,并遵循提供的指南操作,以避免出现兼容性问题。 在实际应用中,UT-890 485-USB驱动可能会涉及到串口配置、波特率设置、数据格式化、握手协议等参数调整,以便适应不同的RS-485网络环境。用户可能需要使用像`dmesg`或`lsusb`这样的命令来验证设备是否被正确识别,同时使用`modprobe`或`udev`规则来加载相应的内核模块,确保驱动能够随系统启动自动加载。 UT-890 485-USB驱动是连接Linux系统与RS-485设备的桥梁,对于那些在64位Linux环境中需要进行RS-485通信的用户来说,这个驱动程序是必不可少的。正确安装和配置该驱动,将允许用户实现可靠、高效的数据传输。
2025-05-20 13:42:11 33KB ut-890 485-usb Linux
1
在当前数据处理领域,从Excel文件到DBC格式的转换是一个常见的需求。DBC文件是一种数据库文件格式,经常用于汽车电子控制系统中,存储车辆诊断数据。由于汽车行业对数据交换的标准化要求较高,DBC文件格式提供了一种标准化的通信方式。然而,Excel作为广泛使用的电子表格软件,其便捷的数据处理能力使得许多工程师和分析师更倾向于在Excel中处理和准备数据。因此,实现从Excel到DBC的自动化转换工具,对于提高工作效率,减少手动转换过程中可能出现的错误,具有显著的意义。 本工具是由Python语言编写而成,Python作为一种高级编程语言,在数据处理方面具备强大的库支持和简洁的语法结构,非常适合用来开发数据转换工具。安装环境运行即可使用,这表明开发团队已经对所需依赖进行了整理和打包,用户无需担心配置环境的问题,大大降低了使用的门槛。用户只需运行该工具,按照指导进行简单的设置,就可以完成数据从Excel到DBC格式的转换。 在实际使用中,该工具可能支持如下功能: 1. 读取Excel文件中的数据,包括但不限于表格数据和特殊格式数据。 2. 将Excel表格中的数据按照DBC文件的格式要求进行解析和转换。 3. 验证转换后数据的完整性和正确性,确保转换过程中数据不会丢失或错乱。 4. 支持自定义配置,允许用户根据实际需要调整转换规则和参数。 5. 提供友好的用户界面,使操作过程更加直观,减少用户的操作难度。 此外,针对DBC文件的特点和使用场景,工具可能还包含以下细节处理: 1. 对DBC文件中的消息、信号等元素提供精确的映射,确保数据内容的准确转换。 2. 考虑到DBC文件中可能涉及复杂的信号处理逻辑(如信号的缩放、偏移等),该工具可能具备解析这些逻辑并进行正确转换的能力。 3. 能够生成符合特定汽车制造商或行业标准的DBC文件模板。 4. 提供相应的错误提示和日志记录功能,方便用户在转换失败时能够快速定位问题并解决。 整体来看,Excel转DBC工具的出现,不仅极大地简化了工程师的数据准备工作,也为行业内的数据交换和通信提供了便利。通过自动化处理,提高了数据处理的效率和准确性,减少了因手动处理导致的错误。该工具的推广和应用,有助于促进数据处理工作的标准化和流程化,对提高整个行业的工作效率和产品质量具有积极作用。
2025-05-20 13:10:38 47KB
1
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。 FFmpeg是一个非常强大的开源多媒体框架,它能够帮助开发者进行音视频的录制、转换以及流处理。FFmpeg支持几乎所有类型的视频和音频格式,包括MPEG、AVI、WMV、MP4、H.264等,并且可以处理多种视频和音频编解码器。由于其强大的功能和灵活性,FFmpeg被广泛应用于多媒体播放器、流媒体服务、音视频编辑工具以及音视频格式转换工具中。 FFmpeg的一个重要组成部分是libavcodec库,这是一个包含了许多音频和视频编解码器的库,它使得开发者可以轻松实现音频和视频的编解码工作。libavcodec为了保证高可移植性和编解码质量,其中的很多编解码算法都是自行开发的,这样不仅可以避免了依赖其他专利或者收费的编解码器,也保证了在多种平台上的兼容性。 此外,FFmpeg还包含了libavformat库,该库用于处理音视频的封装格式,例如avi、mp4、mkv、flv等,它负责多路复用与多路分解功能,能够将多种音视频流封装到一个文件之中。libavformat还为开发者提供了访问媒体文件元数据和读取媒体文件的接口,这对媒体文件的解析和处理非常重要。 FFmpeg的另一个关键组件是libavfilter库,它是一个强大的过滤器库,用于在视频和音频流中应用各种滤镜效果,实现如图像旋转、颜色校正、视频淡入淡出等高级功能。通过libavfilter,开发者可以在处理音视频数据时进行复杂的视觉和音频效果处理。 FFmpeg还提供了libavdevice库,该库支持各种设备的输入输出,使得FFmpeg能够从摄像头、电视卡、声卡等设备上直接获取音视频数据,或者将处理后的数据输出到这些设备上。这使得FFmpeg不仅可以用于文件格式的处理,还能广泛应用于实时音视频捕获和播放场景。 FFmpeg在许可方面非常开放,它采用的是LGPL或GPL许可证,这使得FFmpeg既可以用于开源项目,也允许商业软件使用。由于其高度的模块化设计,FFmpeg可以根据需要进行裁剪和定制,开发者可以选择他们需要的组件进行集成开发。 FFmpeg对开发者来说是一个非常宝贵的工具,无论是在个人项目还是商业项目中,它都能够提供所需的核心功能,而且由于其出色的性能和广泛的兼容性,FFmpeg已经成为了音视频处理领域的首选工具之一。 此外,FFmpeg的版本更新非常活跃,开发者经常发布新版本,修复已知问题,增加新的功能和提高性能。对于Windows 7 64位系统来说,FFmpeg n4.2.9版本库可以提供稳定的支持,并且可以充分利用64位系统的计算优势,进行高效的音视频开发。 随着多媒体技术的不断进步,FFmpeg也在不断地发展,它不仅能够处理现有的音视频格式,还能迅速适应新的技术标准,如新的视频编码格式、网络传输协议等。因此,FFmpeg对于多媒体开发者来说,是一个不可或缺的工具,它能够在音视频处理的各个方面提供帮助。
2025-05-20 10:37:03 11.46MB ffmpeg
1
根据您提供的文件信息,我们可以推断出以下知识点: 1. 驱动程序的适用场景:K230驱动程序设计用于解决特定的硬件识别问题。具体来说,它是在USB连接模式下,当IDE(集成设备电子)接口无法正常识别硬件时使用的解决方案。 2. 驱动程序的作用:驱动程序是操作系统与硬件设备之间的桥梁,负责控制硬件设备。在本例中,K230驱动程序的作用是确保K230硬件设备能够被计算机识别和正确使用。 3. 测试目的:文件中提到的驱动程序是提供给用户进行测试的。这通常意味着该驱动可能还处于开发阶段,未正式发布,或者作者希望收集用户反馈,以优化驱动性能或修复潜在的bug。 4. 文件内容与结构:压缩包内包含一个驱动程序文件,其名称为“K230驱动”。此外,还包含一张说明图片,这表明作者提供了一定程度的使用指导,帮助用户更好地理解如何安装和使用该驱动程序。 5. 驱动程序的分发方式:作者通过分享压缩包的方式将K230驱动程序提供给“小伙伴们”,这表明一种非正式的分发方式,可能是通过网络社区、朋友圈或者其他非官方渠道。 6. 用途限定:尽管没有详细说明K230硬件的具体功能,但从驱动程序的命名上可以推测,该硬件可能是一款特定型号的设备,需要专门的驱动来运行。 7. 用户群体:这里的“小伙伴们”可能指的是一个特定的用户群体,他们可能具有相似的技术背景,能够理解驱动程序的安装和测试过程。 8. 版权与归属:由于没有提及具体的版权信息或开发者信息,我们无法得知该驱动程序的版权归属。在实际使用中,用户应确保遵守相关法律法规,尊重软件的知识产权。 K230驱动程序是为了解决特定硬件在USB模式下,IDE接口无法识别的情况而设计的工具,通过非正式渠道分发给用户进行测试,以期得到更多反馈。用户在使用该驱动程序时应遵循相应的法律法规,并注意查看安装说明,以确保正确安装和使用。
2025-05-19 13:07:31 5.04MB
1
在详细讨论如何使用FOC(矢量或场定向控制)电机控制进行MATLAB仿真之前,我们首先要了解FOC电机控制的基本概念、MATLAB仿真的基本步骤以及它们如何相互结合来实现电机控制系统的模拟。 ### FOC电机控制原理 FOC电机控制是一种先进的电机控制技术,用于实现交流电机(特别是无刷直流电机 BLDC、永磁同步电机 PMSM)的高效和精确控制。FOC的主要优势在于它可以保持电机转矩和磁通的解耦,提供更加平滑、可控的电机性能。 FOC的关键步骤包括: 1. 电机模型的建立:需要精确地了解电机的参数,包括电阻、电感、磁通量等。 2. Park变换:将静止坐标系下的电机电流和电压转换到旋转坐标系(d-q轴)上。 3. PI(比例-积分)控制器的使用:调整d-q轴上的电流分量,以控制电机的磁通和转矩。 4. 逆Park变换:将控制信号转换回静止坐标系,以驱动电机。 5. 空间矢量脉宽调制(SVPWM):用以生成需要的电压矢量,进而驱动电机。 ### MATLAB仿真基础 MATLAB(Matrix Laboratory)是一款用于数值计算、可视化和编程的高级语言,它在工程仿真领域内非常流行。Simulink是MATLAB的一个附加产品,提供了一个图形化的界面用于建模、仿真和多域动态系统的分析。 进行MATLAB仿真通常需要以下几个步骤: 1. 模型的建立:通过数学方程或者框图来建立系统模型。 2. 参数设置:确定仿真的参数,如仿真时间、步长等。 3. 仿真运行:执行仿真过程,观察系统动态行为。 4. 结果分析:利用MATLAB的绘图工具对仿真结果进行分析。 ### FOC电机控制的MATLAB仿真步骤 1. **建立电机模型**:在MATLAB/Simulink中,首先需要建立电机的数学模型,这通常涉及到定义电机的电气参数,如电阻、电感、转动惯量、摩擦系数等,并建立电机的动态方程。 2. **设计PI控制器**:利用MATLAB的控制系统工具箱中的函数来设计PI控制器,调节电机的转矩和磁通,保证电机稳定运行。 3. **实现Park变换和逆变换**:通过编写M文件或使用Simulink的模块,实现从abc三相静止坐标系到dq旋转坐标系的Park变换,以及其逆变换。 4. **SVPWM模块的设计**:SVPWM的目的是为了更好地利用逆变器的开关状态,产生平滑的电机驱动电压。在MATLAB/Simulink中,通常使用自带模块或者自定义算法来实现。 5. **仿真实验**:设置仿真的时间、步长等参数,执行仿真,实时观察电机的电流、转速、转矩等关键变量,以评估控制系统的性能。 6. **结果分析与优化**:分析仿真结果,根据需要对PI控制器参数、SVPWM算法或者电机模型进行调整,直到系统满足设计要求。 ### 结论 通过以上步骤,我们可以利用MATLAB仿真环境对FOC电机控制进行模拟和测试,这对于电机控制算法的设计、调整和验证是非常有益的。在实际操作过程中,可能会遇到各种问题,如模型不准确、控制器参数不当等,需要根据具体情况加以解决。但总的来看,MATLAB为电机控制系统的设计和分析提供了一个强大而灵活的平台。
2025-05-18 19:42:59 933KB 电机控制 matlab
1
标题 "MNIST用神经网络实现" 涉及的核心知识点主要集中在使用TensorFlow构建神经网络模型来处理手写数字识别任务。MNIST数据集是机器学习领域的经典基准,包含60,000个训练样本和10,000个测试样本,每个样本都是28x28像素的灰度图像,代表0到9的手写数字。 **1. TensorFlow框架** TensorFlow是由Google开发的一个开源库,用于数值计算和大规模机器学习。它通过数据流图进行计算,其中节点表示数学操作,而边则表示在这些操作之间流动的多维数据数组(张量)。在MNIST任务中,TensorFlow被用来定义神经网络的结构、训练过程以及预测。 **2. 神经网络** 神经网络是一种模仿人脑神经元结构的计算模型,由多个层次的节点(神经元)组成。在这个例子中,神经网络通常包含输入层、隐藏层和输出层。输入层接收MNIST图像的像素值,隐藏层进行特征提取,输出层则通过激活函数(如softmax)将结果转化为0到1之间的概率分布,代表每个数字的可能性。 **3. MNIST数据预处理** 在实际应用中,通常需要对MNIST数据进行预处理,包括将图像像素归一化到0到1之间,以及将标签进行one-hot编码,即将10个数字类别转换为10维向量,只有一个元素为1,其他为0。 **4. 构建模型** 在`mnist_train.py`中,会定义模型的结构,可能包括一个或多个全连接层(Dense)和激活函数(如ReLU),以及一个输出层。损失函数通常选用交叉熵(cross-entropy),优化器可能选择随机梯度下降(SGD)或Adam,以最小化损失函数。 **5. 训练与验证** 描述中提到的“训练和验证不能同时运行”可能是由于模型的训练循环和验证循环没有正确分离,或者资源管理不善导致的。正常的流程是在每个训练周期后,对验证集进行一次评估,以检查模型是否过拟合。 **6. `mnist_eval.py`** 这个文件通常包含模型的评估逻辑,比如计算模型在测试集上的准确率,以便了解模型的泛化能力。 **7. `mnist_inference.py`** 此文件可能涉及模型的推理部分,即如何使用已经训练好的模型对新的未知数据进行预测。这可能包括加载模型权重、读取新图像、预处理图像,然后通过模型进行预测。 **8. `data`** 这个文件夹可能包含了MNIST数据集的下载和预处理代码,通常包括训练集和测试集的图片数据以及对应的标签。 以上是MNIST手写数字识别任务中涉及到的关键技术和概念。解决描述中的问题可能需要调整训练和验证的并行执行逻辑,确保两个过程能够和谐共存,不影响模型的训练效果。对于初学者来说,这个项目是一个很好的实践平台,可以深入理解TensorFlow和神经网络的基础知识。
2025-05-18 15:46:38 11.06MB tensorflow MNIST
1
苹果高光谱图像数据集用于纯苹果和施肥苹果的高光谱数据集 关于数据集 用于测量所用化学物质水平的纯苹果和施肥苹果的高光谱数据集。数据集由各种苹果的高光谱图像组成。分为三大类: 1.“新鲜”-从市场直接购买的苹果图像 2."低浓度”-苹果浸入低浓度杀真菌剂/杀虫剂溶液 即1克或1毫升肥料兑1升水)的图像,以及 3.高浓度“_苹果浸入低浓度杀真菌剂/杀虫剂溶液 (即3克或3毫升肥料兑1升水)的图像,以及 默认情况下,高光谱图像保存为.bil格式。此数据集以.tif格式给出。 整个数据集被分类为三个folders.1Apple_Samples,2.Fungicide_Apple3.lnsecticide_AppleApple_Samples文件夹由两个文件夹组成:monostar和nativo。“Monostar”被进一步分为四个文件夹,总共有207张图片。"Nativo"由=个文件夹组成,总共73张图片。 杀菌剂 苹果由162张图片组成,分为三类,即新鲜苹果、低浓度溶液浸泡的苹果和高浓度溶液浸泡的苹果。本试验所用的杀菌剂是NATIVO。 同样,杀虫剂苹果由175张图片组成,也分为三类
2025-05-18 09:08:56 761.24MB 数据集
1