李良庭
2025-04-22 5c8762f1f209e2781184a7816bbd3b6af78c0188
no message
已添加7个文件
442 ■■■■■ 文件已修改
.gitignore 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
README.md 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud_viewer.cpp 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud_viewer.sln 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud_viewer.vcxproj 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud_viewer.vcxproj.filters 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sampledata.pcd 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,186 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
build/
bld/
[Bb]in/
[Oo]bj/
# Roslyn cache directories
*.ide/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
#NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding addin-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
## TODO: Comment the next line if you want to checkin your
## web deploy settings but do note that will include unencrypted
## passwords
*.pubxml
# NuGet Packages
packages/*
*.nupkg
## TODO: If the tool you use requires repositories.config
## uncomment the next line
#!packages/repositories.config
# Enable "build/" folder in the NuGet Packages folder since
# NuGet packages use it for MSBuild targets.
# This line needs to be after the ignore of the build folder
# (and the packages folder if the line above has been uncommented)
!packages/build/
# Windows Azure Build Output
csx/
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
README.md
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
## cloud_viewer
PCL点云库查看器
cloud_viewer.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
#define PCL_SILENCE_MALLOC_WARNING 1
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <atomic>
#include <thread>
std::atomic<int> user_data(0);
void viewerOneOff(pcl::visualization::PCLVisualizer& viewer) {
    viewer.setBackgroundColor(0.1, 0.1, 0.1);  // æ·±ç°èƒŒæ™¯æ›´æ˜“观察
    viewer.addCoordinateSystem(1.0);           // æ·»åŠ åæ ‡ç³»
    viewer.initCameraParameters();             // åˆå§‹åŒ–相机参数
    std::cout << "Initial setup complete." << std::endl;
}
void viewerPsycho(pcl::visualization::PCLVisualizer& viewer) {
    static unsigned count = 0;
    viewer.removeShape("text");
    viewer.addText("Frame: " + std::to_string(count++), 20, 30, 20, 1, 1, 1, "text");
    user_data.fetch_add(1, std::memory_order_relaxed);
}
int main() {
    // åŠ è½½ç‚¹äº‘ï¼ˆå¸¦é”™è¯¯å¤„ç†ï¼‰
    pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);
    if (pcl::io::loadPCDFile<pcl::PointXYZRGBA>("sampledata.pcd", *cloud) == -1) {
        std::cerr << "Error: Failed to load PCD file!" << std::endl;
        return -1;
    }
    // åˆ›å»ºå¯è§†åŒ–器
    pcl::visualization::CloudViewer viewer("Enhanced Cloud Viewer");
    // æ˜¾ç¤ºç‚¹äº‘
    viewer.showCloud(cloud);
    // è®¾ç½®å›žè°ƒå‡½æ•°
    viewer.runOnVisualizationThreadOnce(viewerOneOff);
    viewer.runOnVisualizationThread(viewerPsycho);
    // ä¸»å¾ªçޝ
    while (!viewer.wasStopped()) {
        // ç¤ºä¾‹å¤„理逻辑(线程安全)
        user_data.fetch_add(1, std::memory_order_relaxed);
        std::this_thread::sleep_for(std::chrono::milliseconds(50));
    }
    return 0;
}
cloud_viewer.sln
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.13.35931.197 d17.13
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cloud_viewer", "cloud_viewer.vcxproj", "{E0272AA6-951F-4409-9484-862B68244D12}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|x64 = Debug|x64
        Debug|x86 = Debug|x86
        Release|x64 = Release|x64
        Release|x86 = Release|x86
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {E0272AA6-951F-4409-9484-862B68244D12}.Debug|x64.ActiveCfg = Debug|x64
        {E0272AA6-951F-4409-9484-862B68244D12}.Debug|x64.Build.0 = Debug|x64
        {E0272AA6-951F-4409-9484-862B68244D12}.Debug|x86.ActiveCfg = Debug|Win32
        {E0272AA6-951F-4409-9484-862B68244D12}.Debug|x86.Build.0 = Debug|Win32
        {E0272AA6-951F-4409-9484-862B68244D12}.Release|x64.ActiveCfg = Release|x64
        {E0272AA6-951F-4409-9484-862B68244D12}.Release|x64.Build.0 = Release|x64
        {E0272AA6-951F-4409-9484-862B68244D12}.Release|x86.ActiveCfg = Release|Win32
        {E0272AA6-951F-4409-9484-862B68244D12}.Release|x86.Build.0 = Release|Win32
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {F87B5978-7413-49DE-AEED-1D6165969DC0}
    EndGlobalSection
EndGlobal
cloud_viewer.vcxproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,149 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|x64">
      <Configuration>Debug</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|x64">
      <Configuration>Release</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <PropertyGroup Label="Globals">
    <VCProjectVersion>17.0</VCProjectVersion>
    <Keyword>Win32Proj</Keyword>
    <ProjectGuid>{e0272aa6-951f-4409-9484-862b68244d12}</ProjectGuid>
    <RootNamespace>cloudviewer</RootNamespace>
    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <PlatformToolset>v143</PlatformToolset>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>v143</PlatformToolset>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <PlatformToolset>v143</PlatformToolset>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>v143</PlatformToolset>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings">
  </ImportGroup>
  <ImportGroup Label="Shared">
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <IncludePath>D:\Program Files\PCL 1.15.0;D:\Program Files\PCL 1.15.0\3rdParty\Boost\include\boost-1_87;D:\Program Files\PCL 1.15.0\3rdParty\Eigen3\include\eigen3;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\include;D:\Program Files\PCL 1.15.0\3rdParty\VTK\include\vtk-9.4;D:\Program Files\PCL 1.15.0\3rdParty\OpenNI2\Include;$(IncludePath)</IncludePath>
    <LibraryPath>D:\Program Files\PCL 1.15.0\lib;D:\Program Files\PCL 1.15.0\3rdParty\Boost\lib;D:\Program Files\PCL 1.15.0\3rdParty\VTK\lib;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\lib;D:\Program Files\PCL 1.15.0\3rdParty\OpenNI2\Lib;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <IncludePath>D:\Program Files\PCL 1.15.0;D:\Program Files\PCL 1.15.0\3rdParty\Boost\include\boost-1_87;D:\Program Files\PCL 1.15.0\3rdParty\Eigen3\include\eigen3;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\include;D:\Program Files\PCL 1.15.0\3rdParty\VTK\include\vtk-9.4;D:\Program Files\PCL 1.15.0\3rdParty\OpenNI2\Include;$(IncludePath)</IncludePath>
    <LibraryPath>D:\Program Files\PCL 1.15.0\lib;D:\Program Files\PCL 1.15.0\3rdParty\Boost\lib;D:\Program Files\PCL 1.15.0\3rdParty\VTK\lib;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\lib;D:\Program Files\PCL 1.15.0\3rdParty\OpenNI2\Lib;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <OptimizeReferences>true</OptimizeReferences>
      <GenerateDebugInformation>true</GenerateDebugInformation>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
      <AdditionalIncludeDirectories>D:\Program Files\PCL 1.15.0\include\pcl-1.15;D:\Program Files\PCL 1.15.0\3rdParty\Eigen3\include\eigen3;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\include\flann;D:\Program Files\PCL 1.15.0\3rdParty\Boost\include\boost-1_87;D:\Program Files\PCL 1.15.0\3rdParty\VTK\include\vtk-9.4</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <AdditionalLibraryDirectories>D:\Program Files\PCL 1.15.0\lib;D:\Program Files\PCL 1.15.0\3rdParty\Boost\lib;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\lib;D:\Program Files\PCL 1.15.0\3rdParty\OpenNI2\Lib;D:\Program Files\PCL 1.15.0\3rdParty\VTK\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>pcl_common.lib;pcl_io.lib;pcl_kdtree.lib;pcl_search.lib;pcl_sample_consensus.lib;pcl_filters.lib;pcl_features.lib;pcl_segmentation.lib;pcl_visualization.lib;flann.lib;flann_s.lib;vtkSys-9.4.lib;vtkCommonCore-9.4.lib;vtkFiltersCore-9.4.lib;vtkRenderingCore-9.4.lib;vtkInteractionStyle-9.4.lib;vtkRenderingOpenGL2-9.4.lib;OpenNI2.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
      <AdditionalIncludeDirectories>D:\Program Files\PCL 1.15.0\include\pcl-1.15;D:\Program Files\PCL 1.15.0\3rdParty\Eigen3\include\eigen3;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\include\flann;D:\Program Files\PCL 1.15.0\3rdParty\Boost\include\boost-1_87;D:\Program Files\PCL 1.15.0\3rdParty\VTK\include\vtk-9.4</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <OptimizeReferences>true</OptimizeReferences>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <AdditionalLibraryDirectories>D:\Program Files\PCL 1.15.0\lib;D:\Program Files\PCL 1.15.0\3rdParty\Boost\lib;D:\Program Files\PCL 1.15.0\3rdParty\FLANN\lib;D:\Program Files\PCL 1.15.0\3rdParty\OpenNI2\Lib;D:\Program Files\PCL 1.15.0\3rdParty\VTK\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>pcl_common.lib;pcl_io.lib;pcl_kdtree.lib;pcl_search.lib;pcl_sample_consensus.lib;pcl_filters.lib;pcl_features.lib;pcl_segmentation.lib;pcl_visualization.lib;flann.lib;flann_s.lib;vtkSys-9.4.lib;vtkCommonCore-9.4.lib;vtkFiltersCore-9.4.lib;vtkRenderingCore-9.4.lib;vtkInteractionStyle-9.4.lib;vtkRenderingOpenGL2-9.4.lib;OpenNI2.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClCompile Include="cloud_viewer.cpp" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
  </ImportGroup>
</Project>
cloud_viewer.vcxproj.filters
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <Filter Include="源文件">
      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
      <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
    </Filter>
    <Filter Include="头文件">
      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
      <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
    </Filter>
    <Filter Include="资源文件">
      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
    </Filter>
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="cloud_viewer.cpp">
      <Filter>源文件</Filter>
    </ClCompile>
  </ItemGroup>
</Project>
sampledata.pcd
Binary files differ