Ein `scope` kann man auf einem Bild ganz einfach mit `xshift` und `yshift` verschieben. Ebenso kann man mit Hilfe von `scale` die Maßbasis verändern, so dass `(1,1)` eine gewünschte Größe erreicht:
\documentclass[preview,border=0pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[anchor=south west,inner sep=0,scale=1] (Bild) at (0,0)
{\includegraphics[width=23cm,height=16cm]{example-image-a}};
\begin{scope}[
xshift=2cm,
yshift=3cm,
scale=5,
description/.style={
fill=white,
fill opacity=0,
text opacity=1,
}
]
\draw[step=0.1,black,thin] (0,0) grid (1,1);
\end{scope}
\end{tikzpicture}
\end{document}
Das geht auch für die x- und y-Ausdehnung getrennt, wenn man statt zwischen (0,0) und (1,1) ein Feld aufspannen will, das doppelt so breit wie hoch ist:
\documentclass[preview,border=0pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[anchor=south west,inner sep=0,scale=1] (Bild) at (0,0)
{\includegraphics[width=23cm,height=16cm]{example-image-a}};
\begin{scope}[
xshift=2cm,
yshift=3cm,
xscale=10,
yscale=5,
description/.style={
fill=white,
fill opacity=0,
text opacity=1,
}
]
\draw[step=0.1,black,thin] (0,0) grid (1,1);
\end{scope}
\end{tikzpicture}
\end{document}
Ich habe hier als Zeichnung auf dem Bild einfach ein Grid *Grid* (Raster) verwendet. Man kann natürlich auch andere Dinge darauf zeichnen. Man kann sogar an der Stelle des `grid` ein `node` mit einer weiteren `tikzpicture` aufspannen, wenn man das möchte. Dabei erbt die innere `tikzpicture` automatisch die Eigenschaften des `node`.