ContextCapture 用户指南

BlocksExchange XML格式

BlocksExchange XML 格式是 Bentley 提供的一种开放交换格式,用于在 ContextCapture Master 中导入/导出区块定义。

XML 文件可以包括一个或多个区块的属性。

格式规范

<?xml version="1.0" encoding="utf-8"?>
<BlocksExchange version="2.1">
	<!-- Definition of one or several useful spatial reference systems (SRS). -->
	<!-- Here, we need the French Lambert 93. -->
	<SpatialReferenceSystems>
		<SRS>
			<!-- In the sequel, the SRS is referred to by this ID. -->
			<Id>0</Id>
			 <!-- User-friendly SRS name. -->
			<Name>Lambert 93</Name>
			<!-- The spatial reference system definition can be either a Well Known Text 
definition (e.g. WGS84), "EPSG: ", a PROJ.4 definition, or the path to a file 
containing such a definition. -->
			<Definition>EPSG:2154</Definition>
		</SRS>
	</SpatialReferenceSystems>
	<!-- Optional: a path to prefix image paths when they are not absolute 
(default: use the directory of the exchange file). -->
	<BaseImagePath>D:\data\Paris2012sample\Images</BaseImagePath>
	<!-- Block definition. A single file can define several blocks. -->
	<Block>
		<!-- Block name and description are optional. -->
		<Name>Paris2012</Name>
		<Description>Small sample of the Paris 2012 dataset</Description>
		<!-- The type of block is optional. Currently, there is a specific behavior 
for the "Aerial" type only. -->
		<Type>Aerial</Type>
		<!-- Photo downsampling rate can be optionally provided with 
<PhotoDownsamplingRate> tag -->
		<!-- Minmum and maximum viewing distance can be optionally provided with 
<MinimumViewingDistance> and <MaximumViewingDistance> tags -->
		<!-- ID of the base SRS used in the block. By default, the spatial reference 
system is assumed to be a local Cartesian coordinate system. -->
		<SRSId>0</SRSId>
		<Photogroups>
			<!-- All photos taken using the same physical camera, with identical focal 
length and dimensions must be gathered in a photogroup. -->
			<Photogroup>
				<!-- Optionally, a different spatial reference system can be specified for 
each photogroup with the <SRSId> tag. By default, the SRS of the block is assumed.
 -->
				<!-- Optionally, a name with the <Name> tag, and a description with a 
<Description> tag. -->
				<Name>UCX</Name>
				<!-- Image dimensions, in pixels. -->
				<ImageDimensions>
					<Width>9420</Width>
					<Height>14430</Height>
				</ImageDimensions>
				<!-- Optional camera model type Perspective or Fisheye (Perspective 
type is used if this tag is unspecified). -->
				<CameraModelType>Perspective</CameraModelType>
    <!-- Optional camera model band Visible or Thermal (Visible type is 
used if this tag is unspecified). -->
    <CameraModelBand>Visible</CameraModelBand>
				<!-- Sensor's largest dimension, in millimeters. -->
				<!-- Sensor's pixel size, in millimeters, can be substituted for this field.
 -->
				<!-- For this dataset, it would be: -->
				<!-- <PixelSize>0.0072</PixelSize> -->
				<SensorSize>103.896</SensorSize>
				<!-- Focal length, in millimeters. This can be either the nominal 
specification or a closer estimate. -->
				<FocalLength>100.735601903992</FocalLength>
				<!-- Optionally, focal length, in pixels. Can replace FocalLength and 
SensorSize data. -->
				<!-- For this dataset, it would be: -->
				<!-- <FocalLengthPixels>13991.05582</FocalLengthPixels> -->
				<!-- Optionally, specification of the xy-axis of the camera sensor for 
pose rotation and for any position given in millimeter (i.e. <PrincipalPoint> and
 <Measurement> when using <xmm> and <ymm>) -->
				<!-- Possible values: XRightYDown (default), XRightYUp (more frequent 
in photogrammetry), XLeftYDown, XLeftYUp, XDownYRight, XDownYLeft, XUpYRight, 
XUpYLeft -->
				<CameraOrientation>XRightYDown</CameraOrientation>
				<!-- Principal point, with respect to the sensor center. This field is 
optional: by default, the sensor center is used as an initial estimate of the 
principal point. -->
				<PrincipalPoint>
					<!-- 2D image position of the principal point, in pixels. The origin 
is the center of the upper-left image pixel, the x-axis is oriented to the 
right side of the image, and the y-axis is oriented to the bottom of the image. -->
					<x>4683.755692</x>
					<y>7223.0141002</y>
					<!-- Alternatively, a 2D position with respect to the sensor 
center can be specified, in millimeters. In this case, the xy-axis are oriented 
according to CameraOrientation. -->
					<!-- For this dataset, it would be: -->
					<!-- <xmm>-0.1853590176</xmm> -->
					<!-- <ymm>0.06130152144</ymm> -->
				</PrincipalPoint>
				  <!-- Lens distortion coefficients. This field is optional: by default, 
no distortion is assumed as an initial estimate. -->
				  <!-- Distortion coefficients correspond to the classical Brown's 
distortion model, as described in http://en.wikipedia.org/wiki/Distortion_(optics)
. -->
				<Distortion>
					<K1>-0.0010041516639</K1>
					<K2>0.0056007056563</K2>
					<K3>-0.009874171117100001</K3>
					<P1>0</P1>
					<P2>0</P2>
				</Distortion>
				<!-- Fisheye focal matrix used only for the camera model type Fisheye. -->
				<FisheyeFocalMatrix>
					<M_00>1960</M_00>
					<M_01>0</M_01>
					<M_10>0</M_10>
					<M_11>1960</M_11>				
				</FisheyeFocalMatrix>
				<!-- Fisheye distortion coefficients used only for the camera model type 
Fisheye. -->
				<FisheyeDistortion>
					<P0>0</K1>
					<P1>1</K2>
					<P2>0</K3>
					<P3>0</P1>
					<P4>0</P2>
				</FisheyeDistortion>
				<Photo>
					<!-- The ID of a photograph must be unique over the whole block (in other 
words, even across other photogroups). -->
					<Id>146</Id>
					<!-- Path of the image. If not absolute, it is considered to be relative to 
BaseImagePath if defined, or otherwise to the directory of the exchange file. -->
					<ImagePath>071_2810.jpg</ImagePath>
					<!-- Optional path of the image mask. If not absolute, it is 
considered to be relative to BaseImagePath if defined, or otherwise to the 
directory of the exchange file. -->
					<!-- <MaskPath>071_2810_msk.jpg</MaskPath> -->
					<!-- Exterior orientation of the camera, as estimated by navigation 
devices or aerotriangulation. This field is optional. -->
					<!-- Optional component Id: 1 is the main component (default), 0 is no 
component. Photos with incomplete pose cannot belong to the main component -->
					<!-- <Component>1</Component> -->
					<Pose>
						<!-- 3D rotation of the camera in the spatial reference system 
defined above. -->
						<!-- It defines the rotation matrix transforming world coordinates 
(in the specified SRS) into camera coordinates (with axes defined by the 
CameraOrientation of the photogroup). -->
						<!-- The rotation is optional: the pose can be limited to the 3D position
 of the camera center (e.g. when GPS position only is available). -->
						<Rotation>
							<!-- It can be specified in one of the four representations below: -->
							<!-- 1. A 3x3 matrix, using the <M_ij> tags, where M_ij denotes the 
coefficient of the (i+1)th row and the (j+1)th column of the rotation matrix. -->
							<M_00>-0.9999982912233401</M_00>
							<M_01>-0.001636319085375301</M_01>
							<M_02>-0.0008602425863163225</M_02>
							<M_10>-0.001631068695467463</M_10>
							<M_11>0.9999802528616577</M_11>
							<M_12>-0.00606906089589293</M_12>
							<M_20>0.0008701565192966738</M_20>
							<M_21>-0.006067647409696231</M_21>
							<M_22>-0.9999812130648239</M_22>
							<!-- 2. Omega/Phi/Kappa angles, in degrees, using the <Omega>, <Phi>, 
<Kappa> tags. Please refer to the formula in the camera model document. -->
							<!-- For this dataset, it would be: -->
							<!-- <Omega>179.6523471469934</Omega> -->
							<!-- <Phi>0.04985630236313049</Phi> -->
							<!-- <Kappa>179.9065465708369</Kappa> -->
							<!-- 3. Heading/Pitch/Roll angles, in degrees using the <Heading>, 
<Pitch>, <Roll> tags. Please refer to the formula in the camera model document. -->
       <!-- 4. Yaw/Pitch/Roll angles, in degrees using the <Yaw>, ,Pitch>, 
<Roll> tags. Please refer to the formula in the camera model document. -->						
     </Rotation>
						<!-- 3D position of the camera center in the spatial reference system 
defined above. -->
						<!-- Depending on the SRS, x/y may stand either for longitude/latitude, 
for map projection coordinates, or for something else. -->
						<!-- Depending on the SRS, z may stand either for a geoid height, for 
an orthometric height, or for something else. -->
						<Center>
							<x>651999.7159189156</x>
							<y>6863073.633923346</y>
							<z>1318.897690166719</z>
						</Center>
					</Pose>
					<!-- Optional depth information can be provided with <NearDepth>, 
<MedianDepth>, and <FarDepth> tags -->
					<!-- Optional Exif data (each exif data property is optional) 
--><!-- 
					<ExifData>
						<ImageDimensions>
							<Width>4000</Width>
							<Height>3000</Height>
						</ImageDimensions>
						<PixelDimensions>
							<Width>0.02</Width>
							<Height>0.02</Height>
						</PixelDimensions>
						<GPS>
							<Latitude>45.5686684</Latitude>
							<Longitude>2.6551104</Longitude>
							<Altitude>1589.5469</Altitude>
						</GPS>
						<FocalLength>24</FocalLength>
						<FocalLength35mmEq>36</FocalLength35mmEq>
						<Make>FUJIFILM</Make>
						<Model>FinePix S3Pro</Model>
						<LensModel>FinePix S3Pro</LensModel>
						<DateTimeOriginal>2015-04-29T06:40:26</DateTimeOriginal>
					</ExifData> -->				
				</Photo>
				...
			</Photogroup>
		</Photogroups>
		<!-- Control points are highly recommended for accurate positioning. -->
		<ControlPoints>
			<!-- Optionally, a different spatial reference system can be specified 
with the <SRSId> tag. By default, the SRS of the block is assumed. -->
			<ControlPoint>
				<!-- Control point name and description are optional. -->
				<Name>Control point #1</Name>
				<!-- Optionally, a different spatial reference system can be specified 
for each control point with the <SRSId> tag. By default, the SRS of the control 
points container is assumed. -->
				<!-- 3D position of the control point in the active spatial reference 
system. -->
				<!-- Depending on the SRS, x/y may stand either for longitude/latitude, 
for map projection coordinates, or for something else. -->
				<!-- Depending on the SRS, z may stand either for a geoid height, for an 
orthometric height, or for something else. -->
				<Position>
					<x>652788.0525588237</x>
					<y>6863015.362218254</y>
					<z>78.07000000122935</z>
				</Position>
				<!-- Image measurements. -->
				<Measurement>
					<!-- ID of the photo where the measurement is taken. The measurements of 
a control point must have different photo IDs. -->
					<PhotoId>151</PhotoId>
					<!-- 2D image position of the measurement, in pixels. The origin is the 
center of the upper-left image pixel, the x-axis is oriented to the right side of
 the image, and the y-axis is oriented to the bottom of the image. -->
					<!-- Alternatively, a 2D position with respect to the principal point, in 
millimeters. In this case, the xy-axis are oriented according to the 
CameraOrientation of the corresponding photogroup. -->
					<!-- For this dataset, it would be: -->
					<!-- <xmm>18.6231910176</xmm> -->
					<!-- <ymm>-4.48973352144</ymm> -->
					<x>7270.31</x>
					<y>6599.44</y>
				</Measurement>
				...
			</ControlPoint>
			<ControlPoint>
				<Name>Control point #2</Name>
				<Position>
					<x>652123.2211166573</x>
					<y>6863245.976366176</y>
					<z>80.07999999914318</z>
				</Position>
				<!-- If specified, a control point may be a check point (default: false)-->
				<CheckPoint>true</CheckPoint>
				<!-- If specified, a control point may have accuracies -->
				<HorizontalAccuracy>0.01</HorizontalAccuracy>
				<VerticalAccuracy>0.10</VerticalAccuracy>
				<Measurement>
					<PhotoId>146</PhotoId>
					<x>3296.56</x>
					<y>9253.75</y>
				</Measurement>
				...
			</ControlPoint>
			<ControlPoint>
				<Name>Control point #3</Name>
				<!-- If specified, a control point might be Full (default), Horizontal or 
Vertical -->
				<Category>Horizontal</Category>
				<Position> <!-- no z position -->
					<x>652365.1205012415</x>
					<y>6863549.148163618</y>
				</Position>
				<HorizontalAccuracy>0.01</HorizontalAccuracy> <!-- no vertical accuracy -->
				<Measurement>
					<PhotoId>95</PhotoId>
					<x>3178.26</x>
					<y>4020.21</y>
				</Measurement>
				...
			</ControlPoint>
			...
		</ControlPoints>
		<!-- Known tie points may be used to refine an aerotriangulation. -->
		<!-- Uncomment this section before import to get a single tie point in the 
imported block. Please note that a reconstruction created from a such block will 
fail. -->
		<!--<TiePoints>
			--><!-- Optionally, a different spatial reference system can be specified 
with the <SRSId> tag. By default, the SRS of the block is assumed. --><!--
			<TiePoint>
				--><!-- Tie point name and description are optional. --><!--
				--><!-- Optionally, a different spatial reference system can be specified 
for each tie point with the <SRSId> tag. By default, the SRS of the tie points 
container is assumed. --><!--
				--><!-- Optional 3D position of the tie point in the active spatial reference 
system. --><!--
				--><!-- Depending on the SRS, x/y may stand either for longitude/latitude, 
for map projection coordinates, or for something else. --><!--
				--><!-- Depending on the SRS, z may stand either for a geoid height, for an 
orthometric height, or for something else. --><!--
				<Position>
					<x>652119.8871409688</x>
					<y>6863304.305716386</y>
					<z>87.79328384995461</z>
				</Position>
				--><!-- Optional tie point color. --><!--
				<Color>
					<Red>0.59</Red>
					<Green>1.0</Green>
					<Blue>0.0</Blue>
				</Color>
				--><!-- Image measurements. --><!--
				<Measurement>
					--><!-- Optional measurement type User or Automatic (Automatic type is 
used if this tag is unspecified). --><!--
					<Type>Automatic</Type>
					--><!-- ID of the photo where the measurement is taken. The measurements 
of a tie point must have different photo IDs. --><!--
					<PhotoId>146</PhotoId>
					--><!-- 2D image position of the measurement, in pixels. The origin is 
the center of the upper-left image pixel, the x-axis is oriented to the right 
side of the image, and the y-axis is oriented to the bottom of the image. --><!--
					--><!-- Alternatively, a 2D position with respect to the principal point, 
in millimeters. In this case, the xy-axis are oriented according to the 
CameraOrientation of the corresponding photogroup. --><!--
					    <x>3324.26001</x>
					    <y>9930.269531</y>
				</Measurement>
				<Measurement>
					    <PhotoId>158</PhotoId>
					    <x>9079.006836000001</x>
					    <y>9902.772461000001</y>
				</Measurement>
				<Measurement>
					   <PhotoId>162</PhotoId>
					   <x>6240.366211</x>
					   <y>9896.118164</y>
				</Measurement>
			</TiePoint>
		</TiePoints>-->
		<!-- Optional block's positioning constraints based on user tie point (0 
based indices). -->
		<!-- Each constraint is optional. -->
		<!--<PositioningConstraints>
			   <OriginConstraint>
				      <O>2</O>
			   </OriginConstraint>
			   <ScaleConstraint>
				      <A>0</A>
				      <B>3</B>
				      <DistanceAB>56.350</DistanceAB>
			   </ScaleConstraint>
			   <AxisConstraint>
				      <A>0</A>
				      <B>3</B>
				      <AxisAB>z</AxisAB> --><!-- x, y, or z --><!--
			   </AxisConstraint>
			   <OrientationConstraint>
				      <A>0</A>
				      <B>3</B>
				      <C>2</C>
				      <AxisAB>z</AxisAB> --><!-- x, y or z --><!--
				      <AxisSideC>upperX</AxisSideC> --><!-- lowerX, upperX, lowerY, upperY, 
lowerZ, or upperZ --><!--
			         </OrientationConstraint>
		      </PositioningConstraints>--><PointClouds>
	       <PointClouds>
              <PointCloud>
		                   <Name>PointCloud name</Name>
		                   <Description>Description of the pointcloud</Description>
		                   <Path>Absolute or relative path to the POD pointcloud 
file</Path>
		                   <CreatedDateTime>2017-05-26T15:59:08</CreatedDateTime>
		                   <SRS>SRS definition</SRS> (can be empty)
		                   <BoundingBox>
			                         <XMin></XMin>
			                         <XMax></XMax>
<YMin></YMin>
			<YMax></YMax>
			<ZMin></ZMin>
			<ZMax></ZMax>
		</BoundingBox>
<MinResolution>0.0232077879728498</MinResolution>	<MedResolution>0.0480807854162596</MedResolution>
			<MeanResolution>0.0779783209951879</MeanResolution>
	<MaxResolution>4.71837838822922</MaxResolution>
<ColorMode></ColorMode><!-- UseIntensity or UseColor or None -->
<Scans>
	<Scan>
		<Name>Scan name</Name>
		<NumPoints>320519</NumPoint>
		<Attributes>2</Attributes>
		<!-- If static scan -->
		<SourcePosition>
			<x>0.05</x>
			<y>18.59</y>
			<z>58.369</z>
		</SourcePosition>
		<!-- If mobile scan -->
				<Trajectories>
			<Trajectory>
				<Point>
					<x>0.05</x>
					<y>18.59</y>
					<z>58.369</z>
				</Point>
				…
			</Trajectory>
		<Trajectories>
	</Scan>
</Scans
		</PointCloud>
	</PointClouds>
</Block>
</BlocksExchange>

您可以在 ContextCapture 安装目录中找到上述示例和规范文件:

有关 ContextCapture 相机型号的详细信息,另请参阅 ContextCapture 相机型号