自用
利用反射给字段赋值
在 C# 中通过反射给字段赋值是一种动态操作对象成员的常用方法,尤其适用于需要绕过编译时类型检查的场景。以下是完整的实现步骤和代码示例:
利用特性将数据映射到字段
以下是利用 C# 特性(Attributes) 将外部数据(如 JSON、数据库记录)动态映射到对象字段的完整实现方法,结合反射和自定义特性实现自动化映射
ini文件序列化与反序列化
以下是利用 C# 实现 INI 文件序列化与反序列化 的完整解决方案,结合反射和自定义特性,实现对象与 INI 文件的双向转换
BBK-相机外参标定
本文字数: 4.5k 阅读时长 ≈ 4 分钟
主要利用Opencv中的Cv2.SolvePnP计算旋转平移矩阵来计算轮眉高度
Opencv内参标定
本文字数: 2.8k 阅读时长 ≈ 3 分钟
相机内参标定(Camera Intrinsic Calibration)的目的是确定相机的内部参数,包括焦距、主点坐标和畸变系数等。这些参数描述了相机如何将三维世界中的点投影到二维图像平面上。以下是相机内参标定的原理和步骤。
BBK-相机内参标定
本文字数: 3.6k 阅读时长 ≈ 3 分钟
介绍BBK软件中采用的简易内参标定, 用于计算相机焦距, 本文主要用于老版本HUD和轮眉软件.
新版本相机内参在公司出厂前就会标定好, 不需要现场标定, 并且标定方式也与本文不同
图像坐标转换为世界坐标
本文字数: 3.7k 阅读时长 ≈ 3 分钟
理解轮眉测试中如何通过识别图像点计算实际轮眉高度, 转换函数为:CameraLib.CameraAgorithm
下的public static PointF3D Pixel2World(PointF Pixel, CameraBase _camera, double Distance)
图像坐标转换为空间坐标的过程涉及相机的内参矩阵、外参矩阵(旋转矩阵和平移向量)以及可能的深度信息.
Git 修改历史提交的Commit信息
本文字数: 1.4k 阅读时长 ≈ 1 分钟
在提交远程仓库前先精简本地主分支的commit, 然后再提交, 保证远程仓库commit的整洁
每次提交最好只包含一个功能性更改, 方便后续回溯
在 Git 中修改历史提交需要谨慎操作,因为这会影响仓库的提交历史。以下是几种常见的修改历史提交的方法,以及它们的适用场景和注意事项:
CSharp 获取当前运行函数名
Generated by AI
CSharp Linq
Linqpad8 linq
WindowsTerminal配置
配置windows终端
CSharp闭包
闭包是指有权访问另一个函数作用域中的变量的函数
CSharp冷知识-特性
特性的一些特殊用法
CSharp冷知识-IEnumerator
CSharp冷知识-await
await 可以作用于任何提供GetAwaiter方法的类
常用Tcp程序
本文字数: 0 阅读时长 ≈ 1 分钟
合并不同仓库的历史提交
目的:
如两个开发人员分别在本地创建了自己的仓库进行同一项目的开发工作, 后需合并的同时需要保留所有历史提交或其中某个重要的历史提交
3D轮眉标定
本文字数: 470 阅读时长 ≈ 1 分钟
聚类算法
本文字数: 273 阅读时长 ≈ 1 分钟
聚类: 将相似或满足条件的样本归类到同一类别中