- 博客(23)
- 收藏
- 关注
原创 series为什么可以同时添加红绿蓝三组分量并进行对应属性设置?
图表库中的series参数采用数组类型设计,支持同时定义多个独立数据系列(如RGB三色分量),每个系列可独立配置样式、数据等属性。这种多系列容器设计能够:1)将关联但独立的数据维度整合在同一图表中;2)通过独立属性配置实现多维度数据对比;3)满足图像处理等场景对多维度数据可视化对比的需求,避免分开展示导致的对比性差问题。该设计是图表库应对复杂数据展示的基础特性。
2025-12-16 14:15:47
240
原创 在VS的winform中基于C#和OPenCV实现基于python的yolo模型深度学习的使用与训练
本文提出了一种基于WinForm(C#)与Python混合开发的YOLO目标检测系统解决方案。系统采用前后端分离架构:C#负责前端界面交互和图像显示,Python负责YOLO模型的ONNX推理和训练任务。关键技术点包括:1)通过进程调用和JSON数据格式实现跨语言通信;2)Python端实现YOLOv8的ONNX推理和训练功能;3)C#端完成图像处理、结果可视化及训练监控界面。系统支持模型推理、训练及ONNX模型导出功能,并提供了路径处理、性能优化等实用调试技巧。该方案有效解决了Pythonnet环境冲突问
2025-12-09 17:09:39
666
原创 基于C#绘制图表,如柱状图、折线图、饼状图等
摘要:本文介绍了C#开发中图表组件配置类(UIBarOption、UILineOption等)的使用方法。这些类封装了图表渲染参数,通过设置标题、坐标轴、数据系列等属性传递给图表控件。文章详细说明了柱状图(UIBarOption)和折线图(UILineOption)的核心属性及应用场景,并简要介绍了饼图、散点图等其他图表配置类的特点。开发中应根据数据类型和业务目标选择合适的Option类,通过配置属性实现个性化图表展示。(148字)
2025-12-02 14:13:20
666
原创 int? 与int
int?num = 10;定义一个「允许存 null」的整数变量num,当前值为10;解决普通int无法表示「无值」的问题,适配数据库、表单等实际场景;操作时需先判断是否有值(HasValue或),用Value或??安全取值;int?是值类型(),不是引用类型,性能与普通int接近。int?int+ 允许null,是处理 “可选数值” 的必备语法。
2025-11-24 09:19:13
403
原创 理解XAML是什么?
XAML是微软为.NET生态设计的声明式UI描述语言,主要用于定义界面结构、控件布局和样式。它采用标签化语法,与C#分工协作:XAML负责UI呈现,C#处理业务逻辑。XAML支持强类型绑定、样式模板和数据驱动UI更新,广泛应用于WPF、MAUI等.NET UI框架。其核心价值在于分离关注点、提高开发效率,通过声明式语法简化界面开发,同时保持与C#的无缝交互。XAML不是独立语言,而是紧密依赖于.NET控件模型的UI描述工具,使.NET UI开发更加直观和可维护。
2025-11-14 15:02:12
996
原创 <Grid>-</Grid>与C#关系
</Grid>是XAML中网格布局控件的闭合标签,与<Grid>配对使用,用于定义子控件的布局范围。Grid作为XAML框架(如WPF、MAUI)的核心布局容器,通过行和列划分界面区域,支持跨行跨列布局。虽然在C#中没有直接对应的闭合语法,但可以通过Grid类动态创建和操作网格布局。XAML负责声明式UI设计,C#处理后端逻辑控制,二者协同实现灵活的界面布局。</Grid>的合理使用是构建网格化界面的关键。
2025-11-14 14:50:22
844
原创 GDI+ 是什么,什么时候使用,为什么要通过外接矩形绘制
GDI+(Graphics Device Interface Plus)是Windows系统提供的2D图形绘制API,主要用于传统桌面应用的图形处理。它支持基础形状绘制(矩形、椭圆等)、图像处理(缩放、裁剪)、文字渲染和复杂绘图操作,适合WinForms开发、简单图像处理、报表打印等场景。GDI+采用外接矩形机制统一形状绘制逻辑,通过定义形状的边界框来简化坐标计算和变换操作,既提升开发效率也优化底层渲染性能。这种设计使开发者能用统一的参数格式(左上角坐标+宽高)处理各类形状,特别适合鼠标拖拽绘制等交互场景。
2025-11-13 09:23:14
707
原创 C#并行运行中的CLR算法,“爬山”算法和API
摘要: CLR为C#并行编程提供底层支撑(线程池、内存模型、同步原语),而C#通过Parallel类、Task等高级API封装并行算法(数据并行、任务并行)。爬山算法作为优化算法可与C#并行机制结合,通过Parallel.For并行评估候选解或Task并行多初始点搜索来加速执行。API本质是约定与封装的桥梁,隐藏复杂实现(如CLR线程调度),让开发者只需关注业务逻辑(如爬山算法)。三类典型API包括:语言API(如Task.Run)、系统API和WebAPI,均通过标准化接口简化开发。
2025-11-12 11:30:12
702
原创 C#+OpenCV进阶(四)_录屏
类型,用于控制录屏线程的取消(安全停止线程):OpenCvSharp 库中的类型,负责将捕获的帧数据写入视频文件。
2025-11-12 11:11:02
458
原创 try-catch 无法捕获特定异常
Visual Studio 2022调试时try-catch无法捕获异常的根本原因是调试器的"异常设置"配置问题。当调试器配置为在异常首次抛出时中断(first-chance exception),会导致跳过代码中的catch块。解决方法:1)打开"异常设置"窗口(Ctrl+Alt+E);2)取消勾选目标异常类型(如NullReferenceException);3)调试器将不再中断,允许代码正常捕获异常。开发阶段可根据需要灵活配置中断策略,通过Debugger.Br
2025-11-11 11:32:17
714
原创 C#中readonly,const限制变量修改的关键字
摘要:C#中readonly和const关键字都用于限制变量修改,但有显著区别。const是编译时常量,值在编译时确定且不可修改,适用于简单值类型和字符串;readonly是运行时常量,在构造函数中初始化后不可修改引用,但可修改引用对象内部内容,适用于引用类型。const用于固定不变的值(如GripSize),readonly用于运行时确定的不可变引用(如shapes集合)。两者都能增强代码安全性,但应根据值的确定时机和类型选择使用。
2025-11-03 12:17:49
604
原创 C#中+=的两种常见用法
C#中+=运算符的两种主要用法:1.事件订阅:用于将方法注册到事件上,当事件触发时自动调用该方法,如this.MouseWheel += PictureBox_MouseWheel;2.数值累加:用于基本数值类型的加法运算,如a += 3等价于a = a + 3。在GUI开发中,+=常用于绑定事件处理方法来实现交互逻辑,这是C#事件驱动编程的核心语法。
2025-11-03 10:52:41
245
原创 利用DBSCAN聚类算法对相似直线或者相似圆进行图像边缘合并、轨迹拟合
文章摘要: DBSCAN是一种基于密度的聚类算法,通过定义邻域半径(ε)和最小点数(MinPts)识别密集区域为簇,并自动区分噪声点。其优势在于无需预设簇数量、可识别任意形状簇,但对参数敏感且在高维数据中性能下降。 应用扩展: 几何元素合并:通过自定义距离度量(如直线极坐标参数、圆心坐标与半径),结合角度差和位置差设计相似性函数,再用DBSCAN聚类相似直线或圆。 关键步骤: 直线/圆的特征向量化(如直线用(ρ,θ),圆用(a,b,r)); 定义加权距离函数(融合角度、距离等); 设置ε和MinPts参数进
2025-10-24 09:35:05
743
原创 DeepSeek,豆包和腾讯元宝等有什么不同,如何选择?
四大AI产品技术特点与场景应用分析 摘要:ChatGPT、豆包、DeepSeek和腾讯元宝四款AI产品各具特色。ChatGPT作为OpenAI的标杆产品,在通用能力和国际化方面领先,但成本较高;字节跳动的豆包凭借多模态交互和极低成本(推理成本仅ChatGPT的1/7.5),成为个人用户首选;深度求索的DeepSeek在金融、代码等垂直领域表现突出(LeetCode难题通过率89%);腾讯元宝则依托微信生态,在办公协同场景独具优势。代码生成场景中,DeepSeek适合专业开发者,豆包适合初学者,ChatGPT
2025-10-23 15:35:56
2003
原创 C#+OpenCV进阶(三)_操作摄像头与视频文件
文章摘要 本代码实现了一个基于OpenCV的视频/相机操作工具类,主要功能包括: 视频/相机基础操作:支持打开视频文件或相机设备,提供读取帧、关闭资源等方法 视频录制功能:支持初始化视频文件、逐帧写入、释放资源等完整录制流程 静态照片拍摄:支持从相机捕获单帧并保存为图片文件 参数适配:自动获取相机参数(帧率、分辨率)确保与录制参数匹配 实用功能:提供预览画面、按键触发拍照等辅助功能 代码采用C#语言实现,封装了OpenCV的VideoCapture和VideoWriter类,简化了视频采集和保存的复杂操作,
2025-10-23 09:06:50
777
原创 C#+OpenCV进阶(一)_人体识别
本文介绍了三种人脸检测算法及其实现:LBP、Haar和CNN,效果排名为LBP<Haar<CNN。LBP算法通过局部二值模式特征检测人脸,适用于相机对焦等场景;Haar算法基于级联分类器,可检测人脸、眼睛等多种目标,适合轻量级视觉任务;CNN算法通过深度神经网络实现高精度检测,适用于安防监控等对准确性要求高的场景。三种算法都遵循相似流程:加载模型、图像预处理、目标检测和结果标记,但CNN在复杂场景下表现最优。
2025-10-23 09:01:25
1072
原创 C#+OpenCV实战-春天转秋天-玉米粒计数-钢板缺陷检测
本文介绍了三个基于C#和OpenCV的图像处理实战案例:1. 季节色调转换:通过Lab颜色空间调整,将春季图片转换为秋季暖色调效果,核心步骤包括颜色空间转换、通道调整和合并。2. 玉米粒自动计数:利用二值化、形态学处理和轮廓检测技术,实现物体自动计数与标注,适用于农业统计和工业检测。3. 钢板缺陷检测:采用双边滤波、二值化和轮廓分析,识别板材表面瑕疵并标注位置,主要应用于工业质检环节。每个案例都详细拆解了处理流程和关键代码实现,展示了OpenCV在图像处理中的强大功能。
2025-10-22 10:39:12
974
原创 LBP(局部二值模式)、Haar(Haar-like 特征)和 CNN(卷积神经网络)对比
摘要:LBP、Haar和CNN是计算机视觉中三种特征提取技术。LBP通过局部灰度比较生成纹理特征,计算简单但对光照敏感;Haar利用矩形模板计算区域灰度差,适合快速目标检测但表达能力有限;CNN通过深度学习自动提取层次化特征,适应复杂场景但需大量数据。三者的核心区别在于特征提取方式(人工设计vs自动学习)和表达能力,LBP和Haar适合简单任务,CNN则是当前主流技术,适用于复杂视觉任务。
2025-10-21 10:44:50
673
原创 C#+OpenCV实战(一)_图片简易角度矫正
本文介绍了一个自动矫正倾斜纸张图像的代码实现。该功能通过四个模块完成:1)图像预处理(降噪、强化边缘);2)轮廓检测与筛选(找出纸张轮廓);3)定位四角(拟合四边形顶点);4)透视变换(将倾斜图像矫正为正面矩形)。算法适用于扫描或拍摄的文档图像矫正场景,能有效处理因纸张放置不当导致的图像倾斜问题。代码通过边缘检测、凸包计算和透视变换等技术,最终输出经过几何矫正的平整文档图像。
2025-10-21 09:47:15
651
原创 相机曝光值
曝光值不是一个 “独立参数”,而是 “光圈、快门、ISO” 三者的协同结果,核心目标是 “让画面明暗均衡、细节完整”。理解三者的关系后,无论是用自动模式快速拍摄,还是用手动模式精准控制,都能根据场景需求调整出合适的曝光,避免过亮或过暗的问题。
2025-10-15 11:16:16
1136
原创 彩色图直接转为二值化图像出现很多异常颜色的原因
彩色图直接转为二值化图像时出现 “异常颜色”(本质是二值化逻辑混乱、未生成纯黑白二值结果),核心原因是,或二值化过程中,导致算法无法正确判断 “像素该归为黑色(0)还是白色(255)”。
2025-10-14 16:57:33
541
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅