<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.lessokaji.com/index.php?action=history&amp;feed=atom&amp;title=3D%E7%9B%B8%E6%9C%BA%E9%80%82%E9%85%8D</id>
	<title>3D相机适配 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lessokaji.com/index.php?action=history&amp;feed=atom&amp;title=3D%E7%9B%B8%E6%9C%BA%E9%80%82%E9%85%8D"/>
	<link rel="alternate" type="text/html" href="https://wiki.lessokaji.com/index.php?title=3D%E7%9B%B8%E6%9C%BA%E9%80%82%E9%85%8D&amp;action=history"/>
	<updated>2026-04-15T15:54:39Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.lessokaji.com/index.php?title=3D%E7%9B%B8%E6%9C%BA%E9%80%82%E9%85%8D&amp;diff=883&amp;oldid=prev</id>
		<title>Artheru：​创建页面，内容为“引用Camera3D.dll，在工程中写一个类：MainIOObject : Camera3DIOObject，参考以下流程进行适配。  == 1.3D相机适配参数含义 ==  # 点云数据结构   '''public''' '''struct''' '''CameraPoint3D'''  {      '''public''' '''float''' X;//点云x      '''public''' '''float''' Y;//点云y      '''public''' '''float''' Z;//点云z      '''public''' '''byte''' intensity; // 强度，0-255      '''public''' '''byte''' r, g, b; // rgb色彩，0-2…”</title>
		<link rel="alternate" type="text/html" href="https://wiki.lessokaji.com/index.php?title=3D%E7%9B%B8%E6%9C%BA%E9%80%82%E9%85%8D&amp;diff=883&amp;oldid=prev"/>
		<updated>2025-03-10T12:24:41Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“引用Camera3D.dll，在工程中写一个类：MainIOObject : Camera3DIOObject，参考以下流程进行适配。  == 1.3D相机适配参数含义 ==  # 点云数据结构   &amp;#039;&amp;#039;&amp;#039;public&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;struct&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;CameraPoint3D&amp;#039;&amp;#039;&amp;#039;  {      &amp;#039;&amp;#039;&amp;#039;public&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;float&amp;#039;&amp;#039;&amp;#039; X;//点云x      &amp;#039;&amp;#039;&amp;#039;public&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;float&amp;#039;&amp;#039;&amp;#039; Y;//点云y      &amp;#039;&amp;#039;&amp;#039;public&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;float&amp;#039;&amp;#039;&amp;#039; Z;//点云z      &amp;#039;&amp;#039;&amp;#039;public&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;byte&amp;#039;&amp;#039;&amp;#039; intensity; // 强度，0-255      &amp;#039;&amp;#039;&amp;#039;public&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;byte&amp;#039;&amp;#039;&amp;#039; r, g, b; // rgb色彩，0-2…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;引用Camera3D.dll，在工程中写一个类：MainIOObject : Camera3DIOObject，参考以下流程进行适配。&lt;br /&gt;
&lt;br /&gt;
== 1.3D相机适配参数含义 ==&lt;br /&gt;
&lt;br /&gt;
# 点云数据结构&lt;br /&gt;
&lt;br /&gt;
 '''public''' '''struct''' '''CameraPoint3D'''&lt;br /&gt;
 {&lt;br /&gt;
     '''public''' '''float''' X;//点云x&lt;br /&gt;
     '''public''' '''float''' Y;//点云y&lt;br /&gt;
     '''public''' '''float''' Z;//点云z&lt;br /&gt;
     '''public''' '''byte''' intensity; // 强度，0-255&lt;br /&gt;
     '''public''' '''byte''' r, g, b; // rgb色彩，0-255&lt;br /&gt;
     '''public''' '''float''' depth;//深度&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
# 色彩模式&lt;br /&gt;
&lt;br /&gt;
 public enum Camera3dCloudColorMode&lt;br /&gt;
 {&lt;br /&gt;
     Rgb = 0,&lt;br /&gt;
     Depth = 1,&lt;br /&gt;
     Intensity = 2,&lt;br /&gt;
     Solid = 3,&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 2.适配流程 ==&lt;br /&gt;
 //命名空间为3D相机名称&lt;br /&gt;
 '''namespace''' '''XXX'''&lt;br /&gt;
 {&lt;br /&gt;
     //继承3D相机父类&lt;br /&gt;
 	'''public''' '''class''' '''MainIOObject''' : Camera3DIOObject&lt;br /&gt;
     {&lt;br /&gt;
         //启动方法，若有参数则加入参数&lt;br /&gt;
         '''public''' '''void''' '''Start'''()&lt;br /&gt;
         {&lt;br /&gt;
             Console.'''WriteLine'''(&amp;quot;Starting XXX&amp;quot;);&lt;br /&gt;
             //点云显示模式&lt;br /&gt;
 			CloudColorMode = Camera3dCloudColorMode.Intensity;&lt;br /&gt;
 			'''new''' '''Thread'''(() =&amp;gt;&lt;br /&gt;
 			{&lt;br /&gt;
     			'''while''' ('''true''')&lt;br /&gt;
     			{&lt;br /&gt;
         			'''try'''&lt;br /&gt;
         			{&lt;br /&gt;
            			 '''Loop'''();&lt;br /&gt;
         			}&lt;br /&gt;
         			'''catch''' (Exception ex)&lt;br /&gt;
         			{&lt;br /&gt;
             			Console.'''WriteLine'''($&amp;quot;msg:{ex.Message}, stack:{ex.StackTrace}&amp;quot;);&lt;br /&gt;
             			Thread.'''Sleep'''('''1000''');&lt;br /&gt;
         			}&lt;br /&gt;
     			}&lt;br /&gt;
 			}).'''Start'''();&lt;br /&gt;
         }&lt;br /&gt;
         '''private''' '''void''' '''Loop'''()&lt;br /&gt;
         {&lt;br /&gt;
         	//解析相机数据，赋值给cachedPoints&lt;br /&gt;
             //.....解析部分.....&lt;br /&gt;
             &lt;br /&gt;
             //帧号+1，output数据&lt;br /&gt;
             frame += '''1''';&lt;br /&gt;
 			scanC += '''1''';&lt;br /&gt;
 			'''Output'''();&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 启动相机 ==&lt;br /&gt;
在Medulla目录下startup.iocmd中增加以下代码&lt;br /&gt;
 //io load xxx.dll时，会寻找dll里面class MainIOObject并实例化相应的对象赋值给等号左侧的3dcam&lt;br /&gt;
 '''3d'''cam = io load plugins/xxx.dll&lt;br /&gt;
 ////Start对应Start函数，传的参数放在后面，空格隔开&lt;br /&gt;
 '''3d'''cam Start&lt;/div&gt;</summary>
		<author><name>Artheru</name></author>
	</entry>
</feed>