Let us assume that we have a JPEG file of mushrooms given in the following link: WIKI MUSHROOMS
To make it easier to find the desired points in the JPEG, Let us draw a labeled grid on top of the image following the answer of Jake at the link below: Jake Label Grid on Top of JPEG Following Jake answer we define a coordinate system having its (0,0) at the southwest and (1,1) at the northeast of the JPEG. Let us assume that we want to add a rounded rect node at the scaled (0.5, 0.5) of the JPEG with the inner xsep= 0.2 unit and inner ysep= 0.2 scaled unit. Below is my code:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary {shapes.misc}
\usepackage{anyfontsize}
\newcommand{\midfont}{\usefont{T1}{cmr}{b}{n}\fontsize{15}{\baselineskip} \selectfont}
\begin{document}
\begin{tikzpicture}
\node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=0.9\textwidth]
{mushrooms.jpg}};
\begin{scope}[x={(image.south east)},y={(image.north west)}]
\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}; }
\node at ( {.5+0},.5) [ red, line width=2 pt, shape=rounded rectangle,draw, inner xsep=30,
inner ysep=20] (rect){};
\node at ( {.5-.2},{.5+.2}) (text){\textcolor{red}{\midfont{Center is Here}}};
\draw [line width=3 pt, red][->] (rect) -- (text);
\end{scope}
\end{tikzpicture}
\end{document}
I have two questions as below:
- What is the meaning of [x={(image.south east)},y={(image.north west)}] after scope declaration?
- I wanted to use 0.2 scaled unit for inner x sep and y sep to span my rounded rect node 0.2 unit along x and .2 unit along y. but in order to do that I had to use inner xsep=30,
inner ysep=20. I did it by trial and error. Is there any more accurate way to get the correct values of inner xsep and ysep to obtain exactly 0.2 scaled unit for both x and y direction for the rect node?



xyzcoordinate system allows one to define points using a linear combination of three base vectors calledx,yandz.\pgf@xxis a ⟨dimen⟩ register (more precisely, a ⟨dimendef token⟩) that says how much thexvector points to the right,\pgf@xysays how much thexvector points upwards, ...\pgf@yysays how much theyvector points upwards. ⟨dimen⟩ registers are TeX registers that contain rigid lengths. – frougon Oct 10 '21 at 21:39\thefollowed by a ⟨dimendef token⟩ expands to a string which is the length contained in the corresponding ⟨dimen⟩ register, in points. ⟨dimen⟩ registers, ⟨dimendef tokens⟩ and\theare explained in the TeXbook. – frougon Oct 10 '21 at 21:41