- 博客(21)
- 资源 (3)
- 收藏
- 关注
原创 C#AI系列(6): C#离线实现高效OCR
有了tesseract,C#实现ocr也是很方便的事情。简单ocr再也不需要花钱注册会员来整了,随便自己或找个身边的程序员编译下,分分钟就搞定。
2025-12-13 17:10:43
681
原创 C#AI系列(5): 从零开始 C# 轻松语音识别
在使用tiny模型下,整体速度和质量还是基本可以的,如果追求更好的效果则考虑使用更大模型,但与之对内存的需求及运算时间会相应大幅增加。在转换时,语音越长,转换速度越慢,因此建议在转换前,主动对长语音进行分段。尽管这样可能导致上下文丢失造成一定程度的不精确,但却能显著提高转换速度。语音识别是支持多语言混合的。但翻译的功能,试了下,失灵时不灵,可能和模型本身及大小有关。
2025-12-07 00:14:15
972
原创 C#AI系列(4): 从零开始纯 C# 训练专属 YOLO 模型 — See Sharp Yolo
尝试在网上搜集了部分持烟的照片,象征性的进行了训练,能在部分场景下,大致识别出人头部位,说明模型能用,最终效果还得看训练集质量。训练集大小文件大小图像尺寸模型大小训练时长内存占用GPU 负载503.99 MB不定l: 77 MB30 min16 GB99 %训练集图片示意:自定义的标注分类(下图),将头部分为smoke(持烟)和nosmoke(未持烟)两类:预测效果,部分图片仅能识别出0类别(即抽烟的头部),且置信度很低:在C# 训练Yolo模型貌似是可行的。
2025-12-01 16:30:18
1142
原创 C#AI系列(3):31mb单文件exe实现姿态检测-将Yolo装进口袋
本文借助 C# AOT 与 ONNX Runtime,可将 YOLO11 姿态模型及全部依赖压缩为 31 MB 单文件 EXE,现场部署无需 Python 环境与额外组件,显著降低实施、维护与版本漂移风险,可以将落地门槛再降一分,即插即用将AI装进了口袋。
2025-11-27 15:44:38
694
原创 # 从零开始: C#图像验证码SkiaSharp跨平台—不只是“看得清”那么简单
以上分享了C#基于SkiaSharp实现验证码绘制的流程与效果展示,并列出了相关代码方便大家参考与修改了。长文不易,如果读到此处请给个关注吧!如果你在阅读过程中有任何疑问,或者在实际操作中遇到了困难,欢迎随时与我们交流。我们非常期待听到你的反馈和建议,以便我们能够进一步完善内容,帮助更多开发者。请继续关注我们的公众号“萤火初芒”,我们将持续分享更多有趣且实用的技术内容,与大家一起学习交流,共同进步。
2025-11-25 10:11:32
569
原创 C#AI系列(2):深度学习项目构建及实战TorchSharp准备篇
以上分享了在C#中基于TorchSharp简单创建一个人工神经网络模型并训练数据预测数据的丰富。其实在C#中用TorchSharp很多地方与python使用Pytorch很像,为了保持一致性,与TensorFlow.Net相似,TorchSharp在大部分的地方也是通过调用静态方法的方式保留了原来函数式的写法。尽管在C# 的托管环境中运行,但TorchSharp可能仍然需要注意一下内存的管理。依赖.NET垃圾回收机制:最简单但效率最低,仅适用于小模型;
2025-11-24 09:10:14
931
原创 C#AI系列(1):深度学习项目构建及实战TensorFlow准备篇
以上分享了在C#中基于TensorFlow.Net简单创建一个人工神经网络模型并训练数据预测数据的丰富。});下次我们分享基于TorchSharp框架的相关内容构建。如果你在阅读过程中有任何疑问,或者在实际操作中遇到了困难,欢迎随时与我们交流。我们非常期待听到你的反馈和建议,以便我们能够进一步完善内容,帮助更多开发者。请继续关注我们的公众号“萤火初芒”,我们将持续分享更多有趣且实用的技术内容,与大家一起学习交流,共同进步。
2025-11-20 16:17:30
1105
原创 .NET 10性能突破:持续优化才是质变关键
NET 10的优化成果标志着一个转折点——性能优化不再是在现有架构上打补丁,而是重新思考整个执行模型。它证明了一个重要观点:最好的性能优化是让代码不做不必要的工作。这种思维转变的影响是深远的。它意味着未来的运行时优化将更加注重理解应用程序的语义意图、预测而非响应性能问题、在系统层面而不仅仅是组件层面进行优化、让高性能成为默认特性而非可选配置。.NET 10不仅带来了性能数字的提升,更重要的是展示了一种更加智能、更加系统的优化方法论。这对于整个软件开发行业的进化方向具有重要的启示意义。
2025-11-12 16:53:45
1352
原创 从零开始:C#与C++函数传参——调包侠秘籍
在本文中,我们详细探讨了如何在C#项目中调用C++函数,从基本的函数调用,到复杂的参数类型匹配,再到一些高级的用法,如函数指针和结构体数组的传递。通过这些内容,希望能够帮助初学者更好地理解和掌握C#与C++之间的交互方式。跨语言调用虽然在实现上可能会遇到一些挑战,但其带来的性能优化和功能扩展是显而易见的。无论是处理复杂的图像算法,还是调用底层硬件接口,C++的强大功能都能为C#项目提供有力支持。希望本文的介绍能够为你在实际开发中节省时间和精力,避免走弯路。
2025-11-11 10:34:31
1225
原创 从零开始: C#轻松预览PDF文件-支持跨平台AOT友好
尽管AOT启动速度快,但我们还是更偏向与单文件的压缩发布,因为AOT发布后,加上非托管库,体积会比较大。而单文件压缩将非托管后一起打包后大小仅不到26Mb,一个小巧的PDF阅读器就诞生了,是不是很棒。如果你对本文建议或想法,欢迎随时交流。请关注我们的公众号萤火初芒,以后会和大家分享更多有趣内容,一起学习交流进步。项目代码已全部开源 (https://github.com/LdotJdot/LumPdfiumViewerSlim),欢迎给个星星。
2025-10-23 15:48:32
613
原创 从零开始:C# 解析docx提取文本-无需安装office软件且完美支持aot
本文介绍了使用Open XML SDK解析docx文件的方法。docx是微软Word基于XML的文档格式,采用zip压缩技术存储。通过OpenXmlElement对象遍历,可提取段落、表格、控件等元素中的文本,并支持批注内容提取。文章提供了C#实现代码示例,该方法无需安装Office软件,支持AOT编译,生成的程序体积小、启动快。类似方法也可用于pptx、xlsx等Office文档的文本提取。
2025-10-17 14:14:32
1282
原创 # 从零开始:如何用 C# 开发一款媲美 “AnyTxt” 的文件内容搜索工具
摘要:本文介绍了一款基于C#开发的本地文件内容搜索工具TDSContent,旨在提供媲美AnyTxt的高效搜索体验。项目采用Lucene.net构建索引架构,支持多种文件格式(PDF、Office、CAD等)的文本提取,通过USN日志实现索引更新,避免实时监控的性能损耗。相比AnyTxt,TDSContent更注重轻量化设计和安全特性,支持自定义扩展文件解析器,但暂未实现OCR和翻译功能。该项目已开源,开发者可自由扩展功能。
2025-10-16 15:12:19
1491
原创 从零开始:用C#开发的海量文件内容秒搜神器TDSContent——免费开源高效办公必备!
TDSContent是一款免费开源的本地全文搜索工具,基于Lucene.Net引擎开发,支持txt、docx、pptx、pdf等格式的毫秒级内容搜索。软件绿色免安装,通过USN日志实现增量更新,资源占用低。首次索引后搜索性能优异,支持多文件夹管理,可自定义文本文件扩展名。项目采用MIT协议开源,后续将持续扩展更多文件格式支持,并优化模糊搜索等功能。所有功能完全免费,无任何版本限制,适合需要高效文件内容检索的用户使用。
2025-10-14 17:29:34
1016
原创 从零开始:C#实现计算表达式解析与求值——以后缀表达式为例
本文介绍了表达式解析的基本概念和实现方法,重点讲解了中缀表达式转后缀表达式(RPN)的算法。文章首先比较了递归下降法和RPN法的优缺点,指出RPN更适合初学者。然后详细阐述了操作符优先级定义、转换流程和手动试算过程,并提供了完整的C#代码实现。通过栈结构处理操作符优先级和括号匹配问题,最终实现将中缀表达式转换为无歧义的后缀表达式。该方法不仅易于理解和实现,而且性能高效,为表达式求值提供了一种简洁实用的解决方案。
2025-10-09 09:41:43
923
原创 从零开始:C#回收魔法—深入浅出揭开Dispose与释放模式的神秘面纱
我们先来看一个简单例子(Net 8定义一个实现了Dispose方法的简单对象Defer。然后在控制台中我们执行以下代码。// 定义Defer类型.Invoke();// Main入口");// 控制台输出:// Run可以看到,和Run的输出顺序反过来了。这个Defer结构体可以近似模拟Golang中Defer关键词起到的延迟执行功能。using本身是一个语法糖,帮助我们更好把握Dispose()方法的调用时机。对于ref structtry");finally在这里,
2025-09-30 17:04:37
1357
原创 TDS文件搜索_Winform版本与avalonia开发差异比较:(二)列表虚拟化的实现-百万数据轻松展示
如果你对这篇文章的内容有任何建议或想法,欢迎随时交流!本文中TDS文件搜索工具的Winform版本已在仓库完全开源了!点个 Star ⭐️支持一下!代码仓库地址 不清楚的请关注微信公众号"萤火初芒",发送消息 “TDS”即可查看!
2025-09-29 13:31:36
1243
原创 TDS文件搜索_Winform版本与avalonia开发差异比较:(一)系统消息的接收与无标题栏/边框窗体的移动与尺寸调整
本文对比了Winform和Avalonia在Windows系统下的开发差异,以TDS文件搜索工具为例,分析了三个典型功能的实现方式:系统消息接收、无标题栏窗体移动和窗体尺寸调整。Winform开发快速高效,兼容性好,可直接调用系统API;而Avalonia需要适应新框架,学习成本较高但更现代化。文章提供了两种框架下通过消息循环处理热键、简化窗体拖拽操作以及模拟边框调整的具体代码实现,展示了各自的优缺点。作者开源了Winform版本代码,供开发者参考和借鉴。
2025-09-27 00:22:50
1203
原创 从零开始:c#如何优雅的操作临时文件/数据?以ASP文件下载为例
如果你对这篇文章的内容有任何建议或想法,欢迎随时交流!所有实现的代码以在上述章节完整提供。如果你觉得有用,欢迎去浏览一些本公众号的其他其他项目,点个 Star ⭐️支持一下!P.S. 虽然现在AI是强大的工具,但那种为一个方案苦思冥想、最终灵光一现的顿悟感,以及亲手将代码调试成功的巨大成就感,是任何提示词都无法直接给予的。这恰恰是编程中最迷人的部分,是真正属于我们自己的成长。希望大家能享受不断实践、深入原理的过程,那才是通往前方之路的坚实阶梯。
2025-09-24 14:45:50
1193
原创 从零开始: c#纯代码实现完整Json解析器的全过程及注释与自定义格式的支持实现
本文介绍了JSON反序列化的核心概念与实现方法。文章首先解释JSON的数据类型及其在C#中的映射关系,说明反序列化的重要性在于数据转换和持久化。作者通过拆快递的比喻形象描述了JSON解析流程,并给出了基于C#的类架构设计。重点剖析了ReadObject()方法的实现细节,展示了如何递归处理键值对并构建字典对象。文章强调自定义实现的优势在于灵活性、性能优化和特殊功能支持(如注释处理),同时提供了完整的开源代码参考。实现过程中还涉及辅助方法如SkipWhitespaceAndComments()来提升解析效率。
2025-09-20 18:38:47
1181
原创 从零开始:C# 拼音首字母搜索、字符串编码、关键词高亮的原理即实现考虑
本文探讨了高效处理百万级文件名搜索的关键技术。首先介绍了拼音首字母转换方法,通过Unicode编码查表实现快速转换。其次提出存储优化方案,使用64位编码存储模式串,利用位运算进行快速初筛,显著提升搜索效率。最后介绍了Avalonia中关键词高亮显示的实现方式,通过InlineCollection和Run对象实现匹配文本的视觉突出。这些技术组合运用可有效解决大规模文件搜索的性能问题,同时提供良好的用户体验。
2025-09-19 13:23:59
879
原创 从零开始:如何用纯 C# 开发一款媲美 “Everything” 的文件搜索工具
本文介绍了一个用纯C#开发的高效文件搜索工具的开发过程。该项目通过读取USN日志实现快速文件索引,采用内存索引和多线程优化搜索性能,支持拼音首字母检索。UI方面使用Avalonia框架实现现代化界面,通过虚拟化技术和异步处理保证流畅交互。项目还实现了全局热键、搜索历史等扩展功能,已在GitHub开源。相比传统搜索工具,该方案在速度和定制化方面都有显著提升,适合需要高效文件管理的用户。
2025-09-15 15:16:34
1373
媲美everything的纯c#文件搜索软件,windows下 代码全部开源 MIT https://github.com/LdotJdot/TDS
2025-09-25
C#制作的windows系统文件快速搜索工具,读取USN,易用性与速度都已优化的很好。程序为免安装的exe文件。
2019-07-17
读取USN,建立索引优化后的全盘快速搜索工具
2018-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅