Escalar una regla virtual (escala) a imágenes del mismo tamaño (para varias imágenes, fotografía de productos de 360°)

Escalar una regla virtual (escala) a imágenes del mismo tamaño (para varias imágenes, fotografía de productos de 360°)

Imagine que tiene muchas imágenes ligeramente diferentes de un objeto como este, todas tomadas desde la misma distancia, con el objeto solo girando alrededor de su centro (por lo tanto, en todas las imágenes, el fósil será igualmente grande):

ingrese la descripción de la imagen aquí

Ahora también querrás tener una regla virtual en dos lados de las fotografías. ¿Pero qué tamaño tiene el objeto?

Afortunadamente, también tomaste una imagen con una medida real, colgada de manera que cortara el objeto por la mitad (pero al lado)... (también desde exactamente la misma distancia, por lo tanto con el objeto igualmente grande):

ingrese la descripción de la imagen aquí

Ahora querrás colocar una regla virtual en todas las imágenes, como tal:

ingrese la descripción de la imagen aquí

Tenga en cuenta que primero tendrá que escalar todas las fotografías por igual (en LaTeX), hasta que sienta que todas son lo suficientemente grandes (como en el GIF en la parte superior de esta publicación).

Sería posible cargar las imágenes como tal:

\foreach \i in {1,...,16}{
    \begin{figure}
\hspace{0cm}
\vspace{0cm}
\centerline{
\includegraphics[scale=0.1, angle=9,origin=c]{./SourcePictures/Fossil\i.jpg}
}
    \end{figure}
}

Una vez que la escala esté bien, necesitaremos determinar qué tan grande es la imagen, en centímetros de la vida real. Para luego poder ajustar la regla virtual, de manera que su escala sea la correcta.

Para la escala virtual que se muestra arriba, utilicé\fgruler{superior izquierda}pero no encontré manera de escalarlo. Acabo de descubrir esta publicación:Eje, escala real, ¿cuál quizás describe una mejor manera? ¿O deberíamos adaptar el tamaño de las páginas, para que coincidan con los centímetros reales de la fotografía?

¿Alguna sugerencia sobre cómo crear un flujo de trabajo ordenado para esto?

En este caso tomé:

  • 1 foto con una medida
  • 16 imágenes de la rotación de tumbado (set 1)
  • 16 imágenes de la rotación vertical (conjunto 2)

Tenga en cuenta que tanto el conjunto 1 como el conjunto 2 deben desplazarse ligeramente verticalmente.

Aquí hay un ejemplo de una imagen del conjunto 1:

ingrese la descripción de la imagen aquí

Aquí hay un ejemplo de una imagen del conjunto 2:

ingrese la descripción de la imagen aquí

Respuesta1

Supongo que quieres algo así o similar:

La siguiente solución utiliza TikZ y TikZ-calc.

a.En el primer paso, puse la imagen en un nodo.

b.Luego agrego un simplesistema de coordenadas para ese nodo.

C.Con la ayuda de un entorno de alcance, puedo agregar cualquier elemento TikZ a la imagen dentro del sistema de coordenadas.

d1.Sugerencia: uso cmHgI.jpgdesde la publicación inicial aquí; para los usuarios que no cmHgI.jpg
lo tienen les apareceráexample-image.jpg

d2. La pista es medir la 'longitud unitaria' de la regla, que se muestra en, cmHgI.jpgy usarla para todas las reglas TikZ dibujadas.

€dit: agregué una clave\def\ShowHelps{1} % 1 'yes' 0 'no'

En una versión sin formato, esto se ve así: ingrese la descripción de la imagen aquí

Sin las cosas de ayuda:

ingrese la descripción de la imagen aquí

\documentclass[a4paper, landscape]{article}
\usepackage[margin=2cm, showframe=false]{geometry} 
\usepackage{mwe} % Dummy images

\usepackage{tikz}
\usetikzlibrary{calc} 
\pgfkeys{/tikz/savevalue/.code 2 args={\global\edef#1{#2}}}

\def\ShowHelps{1} %    1 'yes'        0   'no'
\begin{document}
\centering\begin{tikzpicture}[font=\sffamily,
Help/.style={font=\Huge, red}
]
\node[anchor=south west,inner sep=0pt] (myimage) at (0,0) {    
\IfFileExists{cmHgI.jpg}
  {\includegraphics[scale=0.15]{cmHgI.jpg}}
    {\includegraphics[width=0.75\textwidth]{example-image.jpg}}
};
\begin{scope}[x={(myimage.south east)},y={(myimage.north west)}]
% Restrict the draw area
\clip (0,0) rectangle (1,1);
% Frame around image -  optional
\draw[] (0,0) rectangle (1,1); % optional
% CoSy inside node
\newcommand\ShowHelpCoSy{
  \draw[help lines,xstep=.1,ystep=.1] (0,0) grid (1,1);
  \foreach \x in {0,1,...,9} { \node[anchor=north] at (\x/10,0) {0.\x}; }
  \foreach \y in {0,1,...,9} { \node[anchor=east] at (0,\y/10) {0.\y}; }
}
\ifnum\ShowHelps=1 \ShowHelpCoSy \fi%
\ifnum\ShowHelps=1\fill[Help] (0.5,0.75) circle(3pt) node[above]{(0.5,0.75)};\fi% <-- Position Test

% Now the stuff:
\path[] (0.705,0.4) coordinate(U1) -- (0.705,0.519) coordinate(U2);
\ifnum\ShowHelps=1 \draw[Help] (U1) circle(2pt) node[label=left:U1]{} -- (U2) circle(2pt) node[label=left:U2]{};\fi % show unitlength line

\path let \p1=($(U2)-(U1)$) in 
\pgfextra{  \pgfmathsetlengthmacro{\unitlength}{veclen(\x1,\y1)}   }
[savevalue={\u}{\unitlength}];
\ifnum\ShowHelps=1 \node[Help] at (0.725,0.25) {unitlength U1U2 = \u}; \fi%<--- show unitlength
\ifnum\ShowHelps=1 \draw[blue, transform canvas={xshift=2mm}] (U1) -- +(0,\u);\fi  % Test

% Small Ruler
\draw[very thick] (0.3,0.35) coordinate(A) -- +(0,3*\u);
\foreach \n in {0,1,...,3}{%%
\draw[very thick] ([yshift=\n*\u]A) -- +(-3mm,0) node[left]{\n} 
\ifnum\n=0 node[anchor=west, right=3mm]{cm}\fi;
}%%
\foreach \n in {0.1,0.2,...,3}{%% 
\draw[] ([yshift=\n*\u]A) -- +(-1.5mm,0);
}%%

% Image Ruler y
\draw[very thick] (0,0) coordinate(B) -- +(0,10*\u);
\foreach \n in {0,1,...,10}{%%
\draw[very thick] ([yshift=\n*\u]B) -- +(3mm,0) node[right]{
\ifnum\n=0 \else \ifnum\n=1 \n\,cm \else \n \fi\fi}; 
}%%
\foreach \n in {0.1,0.2,...,10}{%% 
\draw[] ([yshift=\n*\u]B) -- +(1.5mm,0);
}%%

% Image Ruler x
\draw[very thick] (0,1) coordinate(C) -- (15*\u,1);
\foreach \n in {0,1,...,15}{%%
\pgfmathsetmacro\Color{\n<9 ? "black" : "white"}
\draw[very thick, \Color] ([xshift=\n*\u]C) -- +(0,-3mm) node[below, text=\Color, inner sep=1pt]{
\ifnum\n=0 \else \ifnum\n=1 \n\,cm \else \n \fi\fi}; 
}%%
\foreach \n in {0.1,0.2,...,15}{%% 
\pgfmathsetmacro\Color{\n<9 ? "black" : "white"}
\draw[\Color] ([xshift=\n*\u]C) -- +(0,-1.5mm);
}%%
\end{scope}
\end{tikzpicture}
\end{document}

Respuesta2

Actualmente, estoy haciendo zoom y recortando mediante el siguiente código:

\documentclass{article}

\usepackage{geometry}
\geometry{paperwidth=10cm, paperheight=10cm, margin=0cm}
\usepackage{graphicx}
\usepackage{pgffor}
\pagenumbering{gobble}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newcommand{\ScaleImages}{0.6}

\newcommand{\DisplaceHorizontallySetA}{-18cm}
\newcommand{\DisplaceVerticallySetA}{-1.03cm}

\newcommand{\DisplaceHorizontallySetB}{0.5cm}
\newcommand{\DisplaceVerticallySetB}{-4.5cm}

\newcommand{\DisplaceHorizontallySetC}{0.5cm}
\newcommand{\DisplaceVerticallySetC}{-3cm}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\foreach \i in {0,...,0}{ %%%% First picture
    \begin{figure}
    \hspace{\DisplaceHorizontallySetA}
    \vspace{\DisplaceVerticallySetA}\\
    \centerline{    \hspace{\DisplaceHorizontallySetA}
    \includegraphics[scale=\ScaleImages, angle=0.7]{./Pictures/2020-08_Object-1_(51-208North_4-383South)_Picture-\i.jpg}
    }
    \end{figure}
}

\paperwidth=15cm

\foreach \i in {1,...,16}{ %%%% First rotation (picture 1 until 16)
    \begin{figure}
    \hspace{\DisplaceHorizontallySetB}
    \vspace{\DisplaceVerticallySetB}\\
    \centerline{
    \hspace{\DisplaceHorizontallySetB}
    \includegraphics[scale=\ScaleImages]{./Pictures/2020-08_Object-1_(51-208North_4-383South)_Picture-\i.jpg}
}
    \end{figure}
}

\foreach \i in {17,...,32}{ %%%% Second rotation (picture 17 until 32)
    \begin{figure}
    \hspace{\DisplaceHorizontallySetC}
    \vspace{\DisplaceVerticallySetC}\\
    \centerline{
    \hspace{\DisplaceHorizontallySetC}
    \includegraphics[scale=\ScaleImages]{./Pictures/2020-08_Object-1_(51-208North_4-383South)_Picture-\i.jpg}
}
    \end{figure}
}

\end{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Produce un .PDF como tal:

ingrese la descripción de la imagen aquí

Luego uso la siguiente línea de comando de terminal para convertirlos a .PNG:

convert -density 400 CropperXYZ.pdf CroppedXYZ.png

Como alineamos bien la primera imagen con la regla física, ahora podemos saber el tamaño real del cuadrado.

Ahora queda la parte para superponer reglas virtuales.

información relacionada