《数字图像处理——应用篇》是由谷口庆治编著的一本深入探讨图像处理技术的专业书籍,这本书在图像处理领域具有很高的权威性。
全书完整PDF版本是唯一可获取的全面资源,对于学习和研究图像处理技术的读者来说,无疑是一份宝贵的资料。
图像处理是计算机科学中的一个重要分支,它涉及了将模拟图像转换为数字形式,以及对数字图像进行各种操作以改善质量或提取有用信息。
在《数字图像处理——应用篇》中,作者谷口庆治详细阐述了这一领域的关键概念和技术,包括图像获取、颜色模型、图像增强、图像复原、图像分割、特征提取以及模式识别等核心主题。
1.**图像获取**:这部分介绍了图像传感器的工作原理,如CCD和CMOS,以及扫描仪和相机的成像过程。
同时,还涵盖了像素的概念、采样理论和量化过程。
2.**颜色模型**:书中详细讨论了RGB、CMYK、HSV、YCbCr等常见颜色模型,以及它们在不同应用场景下的选择和转换方法。
3.**图像增强**:通过滤波器、直方图均衡化等手段改善图像的视觉效果,提升图像质量,这部分包括线性和非线性滤波、对比度增强等技术。
4.**图像复原**:针对图像退化问题,如噪声、模糊等,提出了一系列恢复技术,如Wiener滤波、反卷积等。
5.**图像分割**:这是图像分析的关键步骤,包括阈值分割、区域生长、边缘检测等方法,用于将图像划分为有意义的部分。
6.**特征提取**:为了识别和理解图像,需要从图像中提取有意义的特征,如角点、边缘、纹理和形状,这些特征可用于后续的模式识别和对象识别。
7.**模式识别**:利用机器学习算法,如支持向量机、神经网络、决策树等,对图像中的模式进行分类和识别,是图像处理领域的高阶应用,广泛应用于OCR文字识别、人脸识别、医学影像分析等领域。
8.**OCR文字识别**:光学字符识别技术是模式识别的一个实例,通过识别图像中的文字并转化为可编辑文本,该技术在文档自动化处理、图书数字化等方面有着广泛的应用。
压缩包中的文件名表明资源分为了三个部分:`数字图像处理——应用篇.part1.rar`、`数字图像处理——应用篇.part2.rar`和`数字图像处理——应用篇.part3.rar`。
通常,这种分卷压缩格式是为了便于大文件的传输和存储,用户需要下载所有部分并使用合适的解压工具(如WinRAR或7-Zip)合并解压,才能获得完整的PDF文件。
《数字图像处理——应用篇》是一本涵盖广泛、深度适中的教材,适合计算机视觉、图像处理、模式识别等相关领域的学生和研究人员。
通过学习本书,读者不仅可以掌握基本的图像处理技术,还能了解其在实际应用中的策略和方法,为进入这个领域的深入研究打下坚实基础。
1
MATLAB中AR模型功率谱估计中AR阶次估计的实现-psd_my.rar(最近看了几个关于功率谱的问题,有关AR模型的谱估计,在此分享一下,希望大家不吝指正)(声明:本文内容摘自我的毕业论文——心率变异信号的预处理及功率谱估计)(按:AR模型功率谱估计是对非平稳随机信号功率谱估计的常用方法,但是其模型阶次的估计,除了HOSA工具箱里的arorder函数外,没有现成的函数可用,arorder函数是基于矩阵SVD分解的阶次估计方法,为了比较各种阶次估计方法的区别,下面的函数使用了'FPE','AIC','MDL','CAT'集中准则一并估计,并采用试验方法确定那一个阶次更好。
)………………………………以上省略……………………………………………………………………假设原始数据序列为x,那么n阶参数使用最小二乘估计在MATLAB中实现如下:Y=x;Y(1:n)=[];m=N-n;X=[];%构造系数矩阵fori=1:m  forj=1:n      X(i,j)=xt(ni-j);  endendbeta=inv(X'*X)*X'*Y';复制代码beta即为用最小二乘法估计出的模型参数。
此外,还有估计AR模型参数的Yule-Walker方程法、基于线性预测理论的Burg算法和修正的协方差算法等[26]。
相应的参数估计方法在MATLAB中都有现成的函数,比如aryule、arburg以及arcov等。
4.3.3AR模型阶次的选择及实验设计文献[26]中介绍了五种不同的AR模型定阶准则,分别为矩阵奇异值分解(SingularValueDecomposition,SVD)定阶法、最小预测定误差阶准则(FinalPredictionErrorCriterion,FPE)、AIC定阶准则(Akaika’sInformationtheoreticCriterion,AIC)、MDL定阶准则以及CAT定阶准则。
文献[28]中还介绍了一种BIC定阶准则。
SVD方法是对Yule-Walker方程中的自相关矩阵进行SVD分解来实现的,在MATLAB工具箱中arorder函数就是使用的该算法。
其他五种算法的基本思想都是建立目标函数,阶次估计的标准是使目标函数最小化。
以上定阶准则在MATLAB中也可以方便的实现,下面是本文实现FPE、AIC、MDL、CAT定阶准则的程序(部分):form=1:N-1  ……    %判断是否达到所选定阶准则的要求  ifstrcmp(criterion,'FPE')    objectfun(m1)=(N(m1))/(N-(m1))*E(m1);  elseifstrcmp(criterion,'AIC')    objectfun(m1)=N*log(E(m1))2*(m1);  elseifstrcmp(criterion,'MDL')    objectfun(m1)=N*log(E(m1))(m1)*log(N);  elseifstrcmp(criterion,'CAT')    forindex=1:m1        temp=temp(N-index)/(N*E(index));    end    objectfun(m1)=1/N*temp-(N-(m1))/(N*E(m1));  end    ifobjectfun(m1)>=objectfun(m)    orderpredict=m;    break;  endend复制代码orderpredict变量即为使用相应准则预测的AR模型阶次。
(注:以上代码为结合MATLAB工具箱函数pburg,arburg两个功率谱估计函数增加而得,修改后的pburg等函数会在附件中示意,名为pburgwithcriterion)登录/注册后可看大图程序1.JPG(35.14KB,下载次数:20352)下载附件 保存到相册2009-8-2820:54上传登录/注册后可看大图程序2.JPG(51.78KB,下载次数:15377)下载附件 保存到相册2009-8-2820:54上传下面本文使用3.2.1实验设计的输出结果即20例经预处理的HRV信号序列作为实验对象,分别使用FPE、AIC、MAL和CAT定阶准则预测AR模型阶次,图4.1(见下页)为其中一例典型信号使用不同预测准则其目标函数随阶次的变化情况。
从图中可以看出,使用FPE、AIC以及MDL定阶准则所预测的AR模型阶次大概位于10附近,即阶次10左右会使相应的目标函数最小化,符合定阶准则的要求,使用CAT定阶准则预测的阶次较小,在5~10之间。
图4.2(见下页)为另一例信号的阶次估计情况,从中也可以得到同样的结论。
(注,实验信号为实验室所得,没有上传)登录/注册后可看大图图片1.JPG(28.68KB,下载次数:5674)下载附件 保存到相册2009-8-2820:54上传
2025/6/27 16:08:25 6KB matlab
1
微型计算机控制技术(于海生)课件值得看看!第一章 绪论1. 什么是计算机控制系统?计算机控制系统就是利用计算机来实现生产过程自动控制的系统。
2. 计算机控制系统的工作原理(过程)可归纳为几步?(1)实时数据采集;
(2)实时控制决策;
(3)实时控制输出3. 熟悉计算机控制系统的组成。
计算机控制系统由工业控制机和生产过程两大部分组成。
工业控制机是指按生产过程控制的特点和要求而设计的计算机,它包括硬件和软件两部分。
生产过程包括被控对象、测量变送、执行机构、电器开关等装置。
4. 熟悉计算机控制系统的典型形式。
(1)操作指导控制系统;
(2)直接数字控制系统;
(3)监督控制系统;
(4)分散型控制系统;
(5)现场总线控制系统。
5. 了解工业控制机的组成结构和特点。
工业控制机的组成:包括硬件和软件两部分。
硬件包括主机板、内部总线和外部总线、任-机接口、系统支持板、磁盘系统、通信接口、输入输出通道。
软件包括系统软件、支持软件和应用软件。
工业控制机的特点:(1)可靠性高和可维修性好;
(2)环境适应性强;
(3)控制的实时性好;
(4)完善的输入输出通道;
(5)丰富的软件;
(6)适当的计算机精度和运算速度。
2025/6/26 20:18:28 10.6MB 微型计算机控制技术 于海生 ppt
1
定义一个存折类CAccount,存折类具有帐号、姓名、余额等数据成员,可以实现存款、取款和查询余额的操作,取款金额必须在余额范围内。
从存折类派生出信用卡类CCreditcard,信用卡类增加了透支限额一项数据成员,对存款操作进行修改,允许在限额范围内透支金额。
在main函数中建立这两个类的对象并测试之。
2025/6/25 13:15:50 995B 存折存款取款
1
Java实现数据库管理系统,可以通过控制台进行sql语句实现,用文件存储,用到了B+树和hash,用到了java的序列化和反序列化,对象流。
2025/6/25 13:29:51 329KB java 数据库实验 DBMS
1
大眼仔旭给大家分享一款轻量级的图像处理工具。
HornilStylePixPro中文注册版是一个拥有许多先进功能的图形编辑程序。
Stylepix是“样式图片”缩写,这意味着你的图片具有一个良好的风格。
HornilStylePixPro中文版图像处理工具直观的用户界面可以减少您的时间工作,为了编辑图片更好更快!HornilStylePixPro1.14中文注册版HornilStylePixPro中文版-简介HornilStylePixPro是一个拥有许多先进功能的图形编辑程序。
Stylepix是“样式图片”缩写,这意味着你的图片具有一个良好的风格。
HornilStylePix具有一个直观的用户界面,它是为了让控制选择功能更加简单、方便而设计的,即使你没有经验,你也一样可以学会如何编辑图片和对你的照片进行润色。
总之,HornilStylePix直观的用户界面可以减少您的时间工作,为了编辑图片更好更快!HornilStylePix–功能介绍1.节省时间与直观的用户界面HornilStylePix具有直观的用户界面。
它的目的是调整所选功能简单,方便。
即使你没有经验,你可以轻松地学习如何编辑图像和修饰您的照片。
因此,HornilStylePix直观的用户界面减少您的时间工作.为了更好的速度编辑,HornilStylePix的设计重点在于轻,功能强大。
HornilStylePix运行在更少的资源,如网络,书籍和笔记本电脑或虚拟机的图像处理功能全(VMware公司虚拟框,虚拟pc等)的环境。
我们一直在努力提高HornilStylePix性能。
便携式支持HornilStylePix是一个轻量级的。
一种便携式版本的运行HornilStylePix从可移动存储设备如USB闪存驱动器,闪存卡,或软盘(媒体)。
要安装HornilStylePix便携式,只要下载便携包,然后解压缩。
要启动HornilStylePix便携,只需双击您的便携dirveStylePix.exe文件插图2.浏览图片和幻灯片浏览图像工具可以让你轻松地探索开放前的影像图像。
你也可以打开,复制,删除和重命名的图像或目录。
幻灯片显示了选择的图片系列是在当前工作的全屏幕模式路径中。
支持的文件格式:JPEG,PNG,GIF等,tif格式和TGA,BMP和旅行商。
3.方便的工作环境有多个文件可以同时打开工作。
打开的图像安排在MDI(多文档界面)的容器标签。
MDI的支持级联,瓷砖垂直,水平平铺,设置图标的安排。
快速的图像切换:画布窗口之间切换,按Ctrl+Tab键。
如果你想回去,按Ctrl+Shift+Tab键。
如果按上述键,切换窗口被弹出。
然后,如果你想选择下一个画布,按Tab键。
4.多层及分组支持层是用于HornilStylePix分开的画布不同的对象。
图层就像是在另一个堆放胶片。
每一层都可以有不同的对象。
HornilStylePix支持四个对象类型(图像,文本和路径形状)和组对象。
该组对象包含其他对象。
此外,本集团可能包含其他组。
您可以使用层管理层次。
HornilStylePix支持混合模式是用于确定如何两层互相融合。
在StylePix,您可以使用21种混合模式。
5.选择工具HornilStylePixPro中文版图像处理工具支持区域如以下选择工具:自动范围选择和色彩范围选择工具方形,圆形选取工具多边形,套索选择工具您可以通过上述工具的区域选择具有以下模式:新,加,减和相交。
现有的区域选择可以进行修改操作:边界,扩展,合同和柔软性。
6.50种实用的图像过滤器。
颜色调节过滤器:自动水平,自动对比度,自动颜色平衡,级别,曲线,色彩平衡,亮度/对比度,色相/饱和度,伽玛校正,去色,反转,灰度,阈值,量化,直方图均化,色调分离。
锐化和模糊过滤器像素化滤镜渲染过滤器噪声滤波器扭曲过滤器卷积过滤器风格过滤器形态滤波器照片增强过滤器7.绘图工具HornilStylePixPro中文版图像处理工具支持各种绘图工具如画笔,橡皮擦,直线,曲线,喷雾,克隆刷,洪水填充,渐变填充,路径和形状。
8.文字工具文本工具允许你在画布上键入文本。
在文本字符串可以被修改,不仅在正常状态,但也不失旋转对象属性的状态。
9.变换和对齐转换工具允许你改变选择区域或对象。
只有当区域选择启用存在。
当变换工具被激活,可以旋转和调整大小。
10.加强和还原工具在提高工具允许您提高基础上的图像变暗,躲闪,模糊和锐化工具。
11.裁剪工具作物工具用于作物或剪辑图像。
它适用于所有的形象,有形及无形的层面。
12.多
2025/6/24 6:44:44 19.09MB 图像处理工具
1
标题中的“自己制作在线翻译html”意味着我们要讨论的是如何利用HTML和相关技术构建一个自定义的在线翻译工具,这个工具可能会使用外部API,比如必应的翻译服务。
在这个项目中,我们将深入理解如何将HTML与JavaScript、AJAX以及可能的CSS结合,创建一个用户友好的界面,用于实时翻译文本。
描述中提到“用必应接口”,这表明我们将会使用微软的Bing翻译API。
Bing翻译API提供了一个RESTful服务,允许开发者在应用中集成多语言翻译功能。
它支持多种编程语言和平台,通过发送HTTP请求并处理响应来完成翻译任务。
我们需要了解HTML的基础,包括标签、属性和布局。
`index.html`文件通常包含了网页的基本结构,如``、``等元素,其中可能包含一个输入框让用户输入要翻译的文本,以及按钮触发翻译操作。
接着,`config.xml`可能是配置文件,用来存储API密钥、默认设置或翻译的语言对等信息。
在实际开发中,为了安全起见,API密钥通常不会直接写入源代码,而是通过配置文件动态加载,或者使用环境变量。
对于JavaScript部分,我们需要学习AJAX(异步JavaScript和XML)技术,它是现代Web应用中用于与服务器进行数据交互的重要手段。
通过创建XMLHttpRequest对象或使用jQuery、axios等库,我们可以发送HTTP请求到Bing翻译API,获取翻译结果。
请求的URL会包含API的端点、请求参数(如源语言、目标语言和要翻译的文本),以及API密钥。
在接收到API的翻译响应后,我们需要解析JSON格式的数据,提取出翻译结果,并更新HTML页面显示。
这可能涉及到DOM(文档对象模型)操作,例如使用`document.getElementById`或`document.querySelector`找到特定元素,然后修改其内容。
此外,为了提供良好的用户体验,我们可以考虑添加错误处理机制,比如当API调用失败时显示错误信息,或者当用户未输入文本时给出提示。
CSS可以用来美化界面,如设定字体、颜色、布局等,使界面更加友好。
`static`文件夹可能包含CSS样式表、图片和其他静态资源。
在HTML文件中通过``标签引用CSS文件,可以实现样式分离,提高代码可维护性。
总结起来,创建一个自定义的在线翻译HTML页面需要掌握HTML基本结构、JavaScript的AJAX请求、Bing翻译API的使用,以及简单的CSS样式设计。
通过实践这个项目,你可以提升Web开发技能,并对API集成有更深入的理解。
2025/6/24 0:26:46 37KB 在线翻译
1

《VC6多线程编程实例解析》在计算机科学领域,多线程是并发执行的程序设计中的一个重要概念。
在Microsoft Visual C++ 6.0(简称VC6)环境下,多线程技术允许应用程序同时执行多个不同的任务,提高了程序的响应速度和效率。
本资源“VC6-多线程例子.rar”提供了关于如何在VC6中实现多线程编程的实例,旨在帮助开发者更好地理解和应用这一技术。
一、多线程基础多线程是操作系统为提高系统资源利用率和响应时间而引入的概念。
一个进程可以包含多个线程,每个线程都有自己的程序计数器、栈和局部变量,共享全局变量和进程资源。
通过创建线程,程序可以在同一进程中并行执行不同的任务,比如用户界面更新、网络通信和计算等。
二、VC6中创建线程在VC6中,我们可以使用CWinThread类来创建线程。
需要从CWinThread派生一个新的类,并重写其成员函数,如Run(),以定义线程的主要执行逻辑。
然后,在应用程序中创建该类的对象,调用其CreateThread()方法启动新线程。
三、线程同步与通信多线程编程中,线程间的同步和通信至关重要,以避免数据竞争和死锁等问题。
VC6提供了多种同步机制,如CSyncObject类、CRITICAL_SECTION、Mutex、Semaphore和Event等。
例如,CRITICAL_SECTION用于保护临界区,确保同一时间只有一个线程可以访问特定的代码或资源。
四、线程优先级每个线程都有一个优先级,用于决定操作系统调度线程的顺序。
VC6提供了一系列函数,如SetThreadPriority(),用于设置线程的优先级。
然而,不恰当的优先级设置可能导致优先级反转和优先级继承问题,因此需谨慎处理。
五、线程的生命周期线程从创建到销毁经历一系列状态:创建、就绪、运行、等待、恢复和终止。
在VC6中,线程可以通过调用ExitThread()函数主动结束,或者当其运行完毕或被其他线程取消时被动结束。
六、实例分析——ThreadSample"ThreadSample"是这个压缩包内的核心文件,它可能包含了创建、管理以及同步线程的示例代码。
通过研究这个例子,你可以了解如何在实际项目中实现多线程,包括如何定义线程函数、如何传递参数、如何在不同线程间共享数据以及如何进行线程安全的编程。
总结,VC6-多线程例子.rar是一个实用的教学资源,它可以帮助开发者掌握在VC6环境下进行多线程编程的关键技术和实践经验。
通过深入学习和实践其中的ThreadSample,你将能够有效地利用多线程提升你的程序性能。
2025/6/20 8:28:31 236KB
1

Delphi是一款强大的面向对象的编程环境,以其高效的编译器和直观的集成开发环境(IDE)深受开发者喜爱。
在Delphi中,除了可以创建独立的EXE应用程序之外,还可以利用BPL(Binary Package Library)和DLL(Dynamic Link Library)来构建更加灵活和可扩展的软件框架。
本资源"delphi exe+bpl+Dll框架(源代码和示例)"提供了一种将程序模块化的方法,使得更新和维护变得更加简单。
BPL是Delphi中的库文件格式,类似于Windows平台上的DLL,但有其独特的特性和优势。
BPL允许开发者将代码模块化,将其打包成独立的组件,这些组件可以在运行时动态加载,也可以在多个项目之间复用。
这样做的好处在于,当你的程序需要更新或修复某个功能时,只需要替换对应的BPL文件,而不需要重新发布整个EXE,降低了用户的升级成本。
DLL则是一种更通用的Windows动态链接库,它可以被多个进程同时使用,以共享代码和数据。
与BPL类似,DLL同样可以实现代码的分离和动态加载,有助于优化内存使用和提高程序性能。
在Delphi中,DLL和BPL可以混合使用,为软件设计提供更大的灵活性。
本资源包含的"Tangram2.6(D7)"可能是一个基于Delphi 7的项目,Tangram可能是一个框架的名字,它展示了如何将BPL和DLL集成到一个EXE程序中。
通过学习和分析这些源代码,你可以了解如何组织项目结构、如何定义接口、以及如何在EXE、BPL和DLL之间进行通信。
源代码示例通常会包含以下关键部分:1. **项目配置**:设置BPL和DLL的项目属性,如输出目录、依赖项等。
2. **单元接口**:在BPL和DLL的单元文件中声明公共接口,以便于其他组件调用。
3. **实现细节**:在各自的源代码文件中实现接口,包括函数和方法。
4. **动态加载**:在主程序(EXE)中使用LoadLibrary和GetProcAddress等API动态加载BPL或DLL,并调用其中的函数。
5. **通信机制**:可能包括COM接口、Pascal记录、自定义接口类等方式,实现不同组件之间的数据交换。
学习这个框架可以帮助你掌握Delphi程序的模块化设计,理解动态链接库的使用,以及如何优化程序的更新和维护流程。
如果你对Delphi编程感兴趣,或者正在寻找一种提高软件可维护性的方法,那么这个资源将是一份宝贵的参考资料。
通过深入研究源代码,你可以了解到更多关于Delphi BPL和DLL框架的实践技巧和最佳实践。
2025/6/20 8:28:11 3.74MB
1

在IT行业中,测试是软件开发过程中的重要环节,确保产品的质量和稳定性。
本次我们将探讨一个名为"Testing_Balloonicorn-s_Party"的项目,它似乎是一个以Python编程语言为基础的测试框架或者测试用例集。
从标题来看,可能是一个与某个特定事件或主题相关的测试项目,比如一个庆祝活动或者游戏,而"Balloonicorn"可能是这个项目中的虚构角色或者代号。
Python作为一门强大的编程语言,被广泛应用于自动化测试,尤其在Web应用、API接口以及单元测试等方面。
Python有丰富的测试库支持,如unittest、pytest和behave等,它们提供了结构化的测试编写方式和方便的断言方法,帮助开发者高效地进行测试工作。
1. **unittest**: Python的标准测试框架,提供类级别的组织结构,可以创建测试套件,支持参数化测试,且与面向对象编程紧密结合。
在"Testing_Balloonicorn-s_Party"项目中,可能会看到(unittest.TestCase)类的继承,以及各种test_开头的方法来定义测试用例。
2. **pytest**: 相比unittest,pytest更加灵活和强大,支持自定义断言、更简单的测试发现机制和更丰富的插件生态。
项目可能使用了pytest来编写测试,利用其内置的fixture功能来管理测试环境和数据,以及pytest.mark.xfail和pytest.raises等标记来处理预期失败和异常情况。
3. **测试驱动开发(TDD)**: 在这个项目中,可能会遵循TDD原则,即先编写测试,再编写能通过这些测试的代码。
这样可以确保每个功能都有对应的测试覆盖,提高代码质量。
4. **模拟对象(Mocking)**: 测试过程中,为了隔离测试,避免依赖外部资源或服务,可能会使用mock对象来代替真实的依赖。
Python的unittest.mock库提供了一套强大的模拟工具,可以创建模拟函数、类或模块,以便于控制测试行为。
5. **覆盖率报告**: 测试完成后,通常会生成覆盖率报告来评估测试的全面性。
Python有coverage.py库用于计算测试覆盖率,帮助开发者了解哪些代码段未被测试到。
6. **持续集成/持续部署(CI/CD)**: 如果项目规模较大,可能会结合Jenkins、GitLab CI/CD或Travis CI等工具进行自动化测试,每次代码提交都会触发构建和测试流程,确保代码质量。
7. **测试自动化**: 除了手动编写的测试用例,Python的selenium库可用于Web UI自动化测试,requests库可以处理HTTP请求的接口测试。
如果"Balloonicorn-s_Party"涉及到用户界面或API交互,这些工具可能被使用到。
在"Testing_Balloonicorn-s_Party-master"的压缩包中,可能包含了测试脚本、配置文件、测试结果报告以及必要的资源文件。
解压并研究这些内容,我们可以更深入地了解项目的具体测试策略和实现细节。
无论是为了学习Python测试,还是为了维护和改进这个项目,对这些知识点的理解都是至关重要的。
2025/6/20 8:27:41 4KB
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡