Annexes.tex 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. \chapter{Annexes}
  2. \label{cha:Annexes}
  3. \section{Formats de fichiers}
  4. \label{section:fileFormats}
  5. \subsection{Fichiers de primitives 2D/3D reconnus\index{fichiers!formats}\index{fichiers!ouvrir|see{ouvrir des objets}}\index{ouvrir des objets}}
  6. \begin{center}
  7. \begin{tabular}{|>{\raggedright}m{0.1\textwidth}|>{\raggedright}m{0.07\textwidth}|>{\centering}m{0.05\textwidth}|>{\centering}m{0.05\textwidth}|>{\centering}m{0.05\textwidth}|>{\centering}m{0.05\textwidth}|>{\centering}m{0.05\textwidth}|>{\centering}m{0.05\textwidth}|>{\centering}m{0.05\textwidth}|>{\raggedright}m{0.15\textwidth}|}
  8. \hline
  9. Extension & Type & P & M & RGB & NG & N & S & Autre & Description\tabularnewline
  10. \hline
  11. \hline
  12. asc, txt, neu, xyz, etc. & ascii & \CheckmarkBold{} & & \CheckmarkBold{} & \CheckmarkBold{} & \CheckmarkBold{} & \CheckmarkBold{} & & nuage de points ASCII\tabularnewline
  13. \hline
  14. bin & binaire & \CheckmarkBold{} & & \CheckmarkBold{} & & \CheckmarkBold{} & \CheckmarkBold{} & & nuage(s) de points, format binaire spécifique à CloudCompare\tabularnewline
  15. \hline
  16. ply & ascii / binaire & \CheckmarkBold{} & \CheckmarkBold{} & \CheckmarkBold{} & \CheckmarkBold{} & \CheckmarkBold{} & \CheckmarkBold{} & \CheckmarkBold{} & maillage (Stanford)\tabularnewline
  17. \hline
  18. obj & ascii & & \CheckmarkBold{} & & & \CheckmarkBold{} & & \CheckmarkBold{} & maillage (Wavefront)\tabularnewline
  19. \hline
  20. soi & ascii & \CheckmarkBold{} & & & \CheckmarkBold{} & & & & nuage(s) (Soisic, Mensi)\tabularnewline
  21. \hline
  22. (c)bin & binaire & \CheckmarkBold{} & & \CheckmarkBold{} & & & & & nuage (C. Hernandez)\tabularnewline
  23. \hline
  24. pn & binaire & \CheckmarkBold{} & & & & \CheckmarkBold{} & & & nuage (point + normale)\tabularnewline
  25. \hline
  26. pv, pcv & binaire & \CheckmarkBold{} & & & & & \CheckmarkBold{} & & nuage (point + valeur)\tabularnewline
  27. \hline
  28. icm & ascii & & & & & & & \CheckmarkBold{} & association nuages/images\tabularnewline
  29. \hline
  30. \end{tabular}\\
  31. \par\end{center}
  32. \begin{tabular}{lll}
  33. P & : & Points\tabularnewline
  34. M & : & Maillages\tabularnewline
  35. RGB & : & Couleurs (Red, Green, Blue)\tabularnewline
  36. NG & : & Niveaux de Gris\tabularnewline
  37. N & : & Normales\tabularnewline
  38. S & : & Scalaires\tabularnewline
  39. \end{tabular}\\
  40. \subsection{Chargement et sauvegarde}
  41. \begin{center}
  42. \begin{tabular}{|>{\raggedright}m{0.15\textwidth}|>{\centering}m{0.1\textwidth}|>{\centering}m{0.1\textwidth}|}
  43. \cline{2-3}
  44. \multicolumn{1}{>{\raggedright}m{0.15\textwidth}||}{} & Chargement & Sauvegarde\tabularnewline
  45. \hline
  46. asc, txt, neu, xyz, etc. & \CheckmarkBold{} & \CheckmarkBold{}\tabularnewline
  47. \hline
  48. bin & \CheckmarkBold{} & \CheckmarkBold{}\tabularnewline
  49. \hline
  50. ply & \CheckmarkBold{} & \CheckmarkBold{}\tabularnewline
  51. \hline
  52. obj & \CheckmarkBold{} & \CheckmarkBold{}\tabularnewline
  53. \hline
  54. soi & \CheckmarkBold{} & \tabularnewline
  55. \hline
  56. (c)bin & \CheckmarkBold{} & \tabularnewline
  57. \hline
  58. pn & \CheckmarkBold{} & \CheckmarkBold{}\tabularnewline
  59. \hline
  60. pv, pcv & \CheckmarkBold{} & \tabularnewline
  61. \hline
  62. icm & \CheckmarkBold{} & \tabularnewline
  63. \hline
  64. \end{tabular}\\
  65. \par\end{center}
  66. \subsection{Formats ASCII}
  67. \begin{figure}[!htb]
  68. \begin{center}
  69. \includegraphics[width=0.7\textwidth]{images/Partie4_Annexes/asciiFilterDialog.png}
  70. \caption{\label{fig:asciiFilterDialog}Interface de paramètrage de la lecture de fichiers ASCII.}
  71. \end{center}
  72. \end{figure}
  73. \par
  74. Les nuages de points stockés sous format ASCII ne suivent pas tous le même schéma selon l'application
  75. à partir de laquelle ils ont été créés, notamment concernant :
  76. \begin{itemize}
  77. \item la quantité d'information renseignée pour chaque point. La seule certitude est que l'on dispose
  78. systématiquement des coordonnées cartésiennes (X, Y, Z) des points. Peuvent s'ajouter à cela les normales,
  79. couleurs et intensités.
  80. \item l'ordre d'apparition des informations présentes.
  81. \item les caractères de séparation des informations.
  82. \item d'éventuels en-têtes\index{en-tete@en-tête} de fichiers permettant d'apporter diverses informations,
  83. généralement liées à l'application ayant permis la sauvegarde du fichier.
  84. \end{itemize}
  85. \par
  86. Pour palier à ce problème, CloudCompare propose, à l'ouverture de tels fichiers, une boîte de dialogue (figure \ref{fig:asciiFilterDialog})
  87. permettant à l'utilisateur de paramètrer la lecture des données. Ainsi, il est possible d'ouvrir n'importe
  88. quel fichier ASCII, quelque soit l'application ayant permis de le créer, sous réserve que les données
  89. qui s'y trouvent soient suffisamment structurées :
  90. \begin{itemize}
  91. \item chaque ligne correspond à un point
  92. \item chaque donnée est séparée de la suivante par un caractère unique commun à l'ensemble du fichier
  93. (typiquement une tabulation ou un espace)
  94. \item la quantité d'information ainsi que l'ordre d'appartion des ces informations sont les mêmes
  95. pour chaque ligne (donc pour chaque point)
  96. \end{itemize}
  97. \par
  98. La partie centrale de la boîte de dialogue d'ouverture de fichiers ASCII est un tableau dans lequel chaque ligne
  99. correspond à une ligne du fichier lu (donc à un point), et chaque colonne correspond à une information.
  100. L'utilisateur a la possibilité de modifier l'information portée par une colonne, en sélectionnant l'élément
  101. pertinent dans la liste déroulante en tête de colonne (figure \ref{fig:asciiInformationChoice}).\\
  102. \begin{figure}[!htb]
  103. \begin{center}
  104. \includegraphics[width=0.13\textwidth]{images/Partie4_Annexes/asciiInformationChoice.png}
  105. \caption{\label{fig:asciiInformationChoice}Sélection de l'information portée par une colonne.}
  106. \end{center}
  107. \end{figure}
  108. Remarques :
  109. \begin{itemize}
  110. \item il est possible d'ignorer le contenu d'une colonne lors de la lecture, en sélectionnant l'élément
  111. "Ignore" en tête de colonne (par exemple lorsqu'on ne sait pas à quoi correspond une colonne, il est judicieux de
  112. l'ignorer plutôt que de faire une manipulation pouvant induire des erreurs dans la construction du nuage de points).
  113. \item lorsque le premier élément d'un vecteur est sélectionné pour une colonne, les colonnes suivantes sont
  114. automatiquement modifiées si elles ne sont pas déja renseignées, de sorte à recréer le vecteur (si l'utilisateur
  115. sélectionne Nx pour une colonne par exemple, et que les deux colonnes suivantes sont non encore paramétrées,
  116. alors elles seront automatiquement basculées à Ny et Nz respectivement).
  117. \end{itemize}
  118. \par
  119. Cette boîte de dialogue permet aussi d'indiquer à partir de quelle ligne la lecture de données peut commencer,
  120. de manière à pouvoir ignorer d'éventuels en-têtes de fichiers ne portant aucune information liée au nuage de
  121. points. Pour celà, il suffit de renseigner le champ "Skip lines". Par exemple, dans la figure \ref{fig:asciiFilterDialog},
  122. les deux premières lignes composent l'en-tête du fichier, et la lecture doit donc commencer à partir de la
  123. troisième ligne (il faut donc renseigner la valeur 2 pour le champ "Skip lines").\\
  124. \par
  125. Pour finir, il est possible de renseigner le caractère servant de séparateur\index{separateur@séparateur} dans le fichier
  126. (caractère séparant deux informations successives sur une même ligne), via le champ "Separator". Les boutons "ESP" (espace),
  127. "TAB" (tabulation), "," (virgule) et ";" (point virgule) permettent de sélectionner rapidement les caractères les plus
  128. communément utilisés à cet effet.\\
  129. \par
  130. Une fois l'interface paramétrée, cliquez sur OK pour lancer le chargement du fichier.\\
  131. \subsection{Formats spéciaux}
  132. %DGM: pas inclus dans la version 2.1
  133. %
  134. %\subsubsection{Fichiers de défauts (.txt)}
  135. %
  136. %Liste de défauts surfaciques sur un ouvrage de génie civil (polylignes
  137. %3D accompagnées de diverses caractéristiques). Source : EDF/DTG.\\
  138. \subsubsection{Fichier ICM}
  139. Fichier d'association entre un nuage de points et un fichier VRML
  140. de définition des photos calibrées (caméra + fichier image).\\
  141. Exemple :
  142. \begin{tabular}{>{\raggedright}p{0.4\textwidth}>{\raggedright}p{0.4\textwidth}}
  143. \hline
  144. \multicolumn{2}{c}{\textcolor{blue}{fichier <<toto.icm >>}}\tabularnewline
  145. \hline
  146. \#CC\_ICM\_FILE & //header\tabularnewline
  147. FILENAME=pa4.asc & //Fichier de points\tabularnewline
  148. FILETYPE=ASC & //Type du fichier de points\tabularnewline
  149. IMAGES\_DESCRIPTOR=photo\_match.wrl & //Fichier VRML de description des photos calibrées\tabularnewline
  150. \hline
  151. \end{tabular}\\
  152. \begin{tabular}{>{\raggedright}p{0.4\textwidth}>{\raggedright}p{0.4\textwidth}}
  153. \hline
  154. \multicolumn{2}{c}{\textcolor{blue}{fichier <<photos\_match.wrl >>}}\tabularnewline
  155. \hline
  156. \#VRML v2.0 utf8 & \tabularnewline
  157. & \tabularnewline
  158. DEF photo1.jpg Viewpoint\{ & //Header photo \#1\tabularnewline
  159. fieldOfView 0.621379 & //F.O.V.\tabularnewline
  160. position -10.5418 -15.6091 5.95961 & //Centre optique\tabularnewline
  161. description <<VANNE + PETIT TUYEAU >> & //Description\tabularnewline
  162. orientation 0.70724 -0.37292 -0.600618 3.74252 & //Vecteur <<visée >>\tabularnewline
  163. \} & //Fin de photo \#1\tabularnewline
  164. & \tabularnewline
  165. DEF photo2.jpg Viewpoint\{ & //Header photo \#2\tabularnewline
  166. fieldOfView 0.621379 & //etc.\tabularnewline
  167. position -3.9782 -21.276 5.95616 & \tabularnewline
  168. description <<PORTE >> & \tabularnewline
  169. orientation 0.572629 0.696275 -0.432778 2.02135 & \tabularnewline
  170. \} & \tabularnewline
  171. \hline
  172. \end{tabular}\\
  173. Un tel fichier VRML peut être généré quasi-automatiquement par
  174. un logiciel comme \emph{RealWorks} (Mensi).\\
  175. \subsubsection{Fichier d'export de carte de profondeur}
  176. \label{subsection:depthMapFileDescription}
  177. Fichier ASCII d'export de carte de profondeur associée à un \emph{capteur}. Peut être généré via la fonction
  178. \emph{Sensor > Ground-Based Lidar > Export depth buffer} (section~\ref{subsection:exportGBLDepthBuffer}).
  179. \\
  180. Exemple :
  181. \begin{tabular}{>{\raggedright}p{0.4\textwidth}>{\raggedright}p{0.4\textwidth}}
  182. \hline
  183. \multicolumn{2}{c}{\textcolor{blue}{fichier <<Ground Based Laser Scanner.txt >>}}\tabularnewline
  184. \hline
  185. // CLOUDCOMPARE DEPTH MAP & \tabularnewline
  186. // Associated cloud: Cloud \#0 & \emph{associated cloud name (as disp. in CC)}\tabularnewline
  187. // dPhi = 0.005000 [ -0.383052 : 0.319331 ] & \emph{horizontal angular step}\tabularnewline
  188. // dTheta = 0.005000 [ -1.626588 : 0.137948 ] & \emph{vertical angular step}\tabularnewline
  189. // pMax = 78823.398438 & \emph{max depth}\tabularnewline
  190. // L = 353 & \emph{number of horiz. pixels}\tabularnewline
  191. // H = 141 & \emph{number of vert. pixels}\tabularnewline
  192. ///////////////////////// & \tabularnewline
  193. 0.000000 0.000000 18132.496094 & 1st pixel coordinates (i,j) and depth (z) \tabularnewline
  194. 1.000000 0.000000 15145.963154 & 2nd pixel coordinates (i,j) and depth (z) \tabularnewline
  195. ... & \tabularnewline
  196. 352.000000 140.000000 132135.321542 & L*H pixel coordinates (i,j) and depth (z) \tabularnewline
  197. \hline
  198. \end{tabular}\\
  199. \section{Ligne de commande}
  200. \label{subsection:commandeLine}