opencv calib3d 模块 usac magsac Gamma 查表值验证

cpp 复制代码
void inflateGammaValues(
	std::vector<double>& gamma_complete_anchor,
	std::vector<double>& gamma_incomplete_anchor,
	std::vector<double>& gamma_anchor,
	double max_thr=7.5, double gamma_quantile = 3.04, double DOF=2,int number_of_anchor_points=50)
{
	//上不完全gamma
	gamma_complete_anchor= std::vector<double>(number_of_anchor_points),
	//下不完全gamma
	gamma_incomplete_anchor= std::vector<double>(number_of_anchor_points),
	//上不完全gamma
	gamma_anchor= std::vector<double>(number_of_anchor_points);

	const double step0 = max_thr / (number_of_anchor_points-1);
	const double step1 = max_thr* gamma_quantile / (number_of_anchor_points - 1);

	const double n_plus_1_div_2 = (DOF + 1.0) / 2.0;
	const double n_minus_1_div_2 = (DOF - 1.0) / 2.0;

	const double gamma_n_plus = boost::math::tgamma(n_plus_1_div_2);
	const double gamma_n_minus = boost::math::tgamma(n_minus_1_div_2);
	for (int i = 0; i < number_of_anchor_points; ++i)
	{
		gamma_complete_anchor[i]= boost::math::gamma_q(n_minus_1_div_2, step0 * i) * gamma_n_minus;
		gamma_incomplete_anchor[i] = boost::math::gamma_p(n_plus_1_div_2, step0 * i) * gamma_n_plus;
		gamma_anchor[i] = boost::math::gamma_q(n_minus_1_div_2, step1 * i) * gamma_n_minus;
	}
}
相关推荐
棒棒的皮皮3 小时前
YOLO 拓展应用全解析(目标跟踪 / 实例分割 / 姿态估计 / 多目标检测)
深度学习·yolo·目标检测·计算机视觉·目标跟踪
saoys4 小时前
Opencv 学习笔记:边缘检测 + 霍夫变换精准查找直线
笔记·opencv·学习
格林威4 小时前
纹理表面缺陷分析:利用频域变换检测织物疵点的 6 种技术,附 OpenCV+Halcon 实战代码!
人工智能·opencv·机器学习·计算机视觉·视觉检测·工业相机·堡盟相机
LittroInno4 小时前
无人机识别与跟踪技术:光电探测方式的精准守护
人工智能·计算机视觉·无人机·目标识别
FuckPatience5 小时前
利用Halcon矩阵算子vector_to_hom_mat2d进行工业相机的九点标定
计算机视觉
PeterClerk5 小时前
OpenCV 常用函数+ 示例图
图像处理·人工智能·python·opencv·计算机视觉
格林威5 小时前
线缆外皮破损检测:保障电气安全的 7 个核心策略,附 OpenCV+Halcon 实战代码!
人工智能·opencv·安全·机器学习·计算机视觉·视觉检测·工业相机
岑梓铭5 小时前
(YOLO前置知识点)神经网络、Pytorch、卷积神经网络CNN
人工智能·pytorch·笔记·深度学习·神经网络·yolo·计算机视觉
木头程序员6 小时前
生成式AI可靠性与可控性技术研究:从真实性到可控编辑
图像处理·人工智能·深度学习·机器学习·计算机视觉·语言模型