点云插值:三维平面参数确定-不共线三点的平面方程

  参考链接:三维空间中的平面方程              

  这个链接是错误的: http://blog.csdn.net/PengPengBlog/article/details/52774421   

 

	//获取平面方程//Ax + By + Cz + D
	std::vector<float> getPlaneParam(const std::vector<pcl::PointXYZ> &votexs)
	{
		std::vector<float> abcd;
		if (votexs.size()<3){
			return abcd;
		}
		else
		{//取前三个点计算平面
			float x1, x2, x3, y1, y2, y3, z1, z2, z3;
			x1 = votexs[0].x; x2 = votexs[1].x; x3 = votexs[2].x;
			y1 = votexs[0].y; y2 = votexs[1].y; y3 = votexs[2].y;
			z1 = votexs[0].z; z2 = votexs[1].z; z3 = votexs[2].z;
			float A = y1*(z2-z3)+y2*(z3-z1)+y3*(z1-z2);
			float B = z1*(x2-x3)+z2*(x3-x1)+z3*(x1-x2);
			float C = x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2);
			float D = -(x1*(y2*z3-y3*z2)+ x2*(y3*z1-y1*z3) + x3*(y1*z2 -y2*z1) );
			abcd.push_back(A); abcd.push_back(B); abcd.push_back(C);
			abcd.push_back(D);
		}

		return abcd;
	}

以茶壶为例,点云插值的效果如下:

顶点点云:

Mesh图像:

插值点云:






posted @   wishchin  阅读(2013)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2017-03-22 OpenCV:OpenCV目标检测Boost方法训练
点击右上角即可分享
微信分享提示