数据类型转换
This commit is contained in:
parent
517889ff90
commit
47fef439e3
@ -63,23 +63,28 @@ public:
|
|||||||
|
|
||||||
// 转换统一格式数据为std::vector<std::vector<SVzNL3DPosition>>格式
|
// 转换统一格式数据为std::vector<std::vector<SVzNL3DPosition>>格式
|
||||||
// validPointCount: 可选输出参数,返回有效点个数(xyz全非0的点)
|
// validPointCount: 可选输出参数,返回有效点个数(xyz全非0的点)
|
||||||
int ConvertToSVzNL3DPosition(const std::vector<std::pair<EVzResultDataType, SVzLaserLineData>>& unifiedData,
|
int ConvertToSVzNL3DPosition(const std::vector<std::pair<EVzResultDataType, SVzLaserLineData>>& unifiedData,
|
||||||
std::vector<std::vector<SVzNL3DPosition>>& scanLines,
|
std::vector<std::vector<SVzNL3DPosition>>& scanLines,
|
||||||
size_t* validPointCount = nullptr);
|
size_t* validPointCount = nullptr);
|
||||||
|
|
||||||
// 从文件加载Poly折线数据(带颜色)
|
// 转换统一格式数据为std::vector<std::vector<SVzNLPositionD>>格式
|
||||||
// polyLines: 每条折线的点坐标列表,polyLines[i] 是第i条折线的所有点(含RGB颜色)
|
int ConvertToSVzNLPositionD(const std::vector<std::pair<EVzResultDataType, SVzLaserLineData>>& unifiedData,
|
||||||
int LoadPolySegments(const std::string& fileName,
|
std::vector<std::vector<SVzNLPositionD>>& scanLines);
|
||||||
std::vector<std::vector<SVzNLPointXYZRGBA>>& polyLines);
|
|
||||||
|
// 从文件加载Poly折线数据(带颜色)
|
||||||
|
// polyLines: 每条折线的点坐标列表,polyLines[i] 是第i条折线的所有点(含RGB颜色)
|
||||||
|
int LoadPolySegments(const std::string& fileName,
|
||||||
|
std::vector<std::vector<SVzNLPointXYZRGBA>>& polyLines);
|
||||||
|
|
||||||
// 获取最后的错误信息
|
// 获取最后的错误信息
|
||||||
std::string GetLastError() const { return m_lastError; }
|
std::string GetLastError() const { return m_lastError; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// 读取XYZ格式的激光数据
|
// 读取XYZ格式的激光数据
|
||||||
int _ParseLaserScanPoint(const std::string& data, SVzNL3DPosition& sData, SVzNL2DPosition& s2DData);
|
int _ParseLaserScanPoint(const std::string& data, SVzNL3DPosition& sData, SVzNL2DPosition& s2DData);
|
||||||
|
int _ParseLaserScanPoint(const std::string& data, SVzNL3DPosition& sData, SVzNL2DPositionF& s2DData);
|
||||||
// 读取RGBD格式的激光数据 - 新增RGBD支持
|
|
||||||
|
// 读取RGBD格式的激光数据 - 新增RGBD支持
|
||||||
int _ParseLaserScanPoint(const std::string& data, SVzNLPointXYZRGBA& sData, SVzNL2DLRPoint& s2DData);
|
int _ParseLaserScanPoint(const std::string& data, SVzNLPointXYZRGBA& sData, SVzNL2DLRPoint& s2DData);
|
||||||
|
|
||||||
// 获取激光数据类型
|
// 获取激光数据类型
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1188,10 +1188,11 @@ int PointCloudImageUtils::GenerateDepthImage(
|
|||||||
if (!lineData.p3DPoint || lineData.nPointCount <= 0) continue;
|
if (!lineData.p3DPoint || lineData.nPointCount <= 0) continue;
|
||||||
|
|
||||||
// 根据数据类型处理点云数据
|
// 根据数据类型处理点云数据
|
||||||
if (dataType == keResultDataType_Position) {
|
if (dataType == keResultDataType_Position ||
|
||||||
SVzNL3DPosition* positions = static_cast<SVzNL3DPosition*>(lineData.p3DPoint);
|
dataType == keResultDataType_PositionF) {
|
||||||
for (int i = 0; i < lineData.nPointCount; i++) {
|
SVzNL3DPosition* positions = static_cast<SVzNL3DPosition*>(lineData.p3DPoint);
|
||||||
const SVzNL3DPosition& point = positions[i];
|
for (int i = 0; i < lineData.nPointCount; i++) {
|
||||||
|
const SVzNL3DPosition& point = positions[i];
|
||||||
if (point.pt3D.z < 1e-4) continue;
|
if (point.pt3D.z < 1e-4) continue;
|
||||||
|
|
||||||
if (point.pt3D.x < xMin) xMin = point.pt3D.x;
|
if (point.pt3D.x < xMin) xMin = point.pt3D.x;
|
||||||
@ -1250,10 +1251,11 @@ int PointCloudImageUtils::GenerateDepthImage(
|
|||||||
|
|
||||||
if (!lineData.p3DPoint || lineData.nPointCount <= 0) continue;
|
if (!lineData.p3DPoint || lineData.nPointCount <= 0) continue;
|
||||||
|
|
||||||
if (dataType == keResultDataType_Position) {
|
if (dataType == keResultDataType_Position ||
|
||||||
SVzNL3DPosition* positions = static_cast<SVzNL3DPosition*>(lineData.p3DPoint);
|
dataType == keResultDataType_PositionF) {
|
||||||
for (int i = 0; i < lineData.nPointCount; i++) {
|
SVzNL3DPosition* positions = static_cast<SVzNL3DPosition*>(lineData.p3DPoint);
|
||||||
const SVzNL3DPosition& point = positions[i];
|
for (int i = 0; i < lineData.nPointCount; i++) {
|
||||||
|
const SVzNL3DPosition& point = positions[i];
|
||||||
if (point.pt3D.z < 1e-4) continue;
|
if (point.pt3D.z < 1e-4) continue;
|
||||||
|
|
||||||
// 计算图像坐标
|
// 计算图像坐标
|
||||||
|
|||||||
16
Utils.pro
16
Utils.pro
@ -9,13 +9,17 @@ CloudView3D.file = CloudView3D/CloudView3D.pro
|
|||||||
CloudView.file = CloudView/CloudView.pro
|
CloudView.file = CloudView/CloudView.pro
|
||||||
|
|
||||||
# 添加子项目
|
# 添加子项目
|
||||||
SUBDIRS += \
|
SUBDIRS += \
|
||||||
VrCommon \
|
VrCommon \
|
||||||
VrUtils \
|
VrUtils
|
||||||
CloudUtils \
|
|
||||||
DataUtils
|
!equals(TARGET_APP, "ParkingSpaceGuideView") {
|
||||||
|
SUBDIRS += \
|
||||||
|
CloudUtils \
|
||||||
|
DataUtils
|
||||||
|
}
|
||||||
|
|
||||||
win32-msvc {
|
win32-msvc:!equals(TARGET_APP, "ParkingSpaceGuideView") {
|
||||||
SUBDIRS += \
|
SUBDIRS += \
|
||||||
CloudView3D \
|
CloudView3D \
|
||||||
CloudView
|
CloudView
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user