Highlight regions in an image with CLI
I have an image (a photo) and I want to highlight certain parts of this. I want to do this from the CLI.
I am planning to store the pixel coordinates of polygon vertices in a file, and when I run a script, a new image should be applied with the polygons highlighted. I am going to be making a lot of tweaks to the file, which is why I want the coordinates of highlighted areas in a text file.
How can I accomplish this? I am comfortable programming if that is the easiest option.
2 answers
Another possibility is to use LaTeX. There are several ways in which you could use it to add a polygon on top of an image, one way is TikZ:
% !TeX program = txs:///arara
% arara: pdflatex: {synctex: on, interaction: nonstopmode, shell: yes}
\documentclass[tikz,convert]{standalone}
\begin{document}
\begin{tikzpicture}[inner sep=0pt]
\node {\includegraphics{example-image-duck}};
\draw[red] (0.5,0.75) -- (0.75,0.5) -- (0.5,0.1) -- (0.25,0.5) -- cycle;
\end{tikzpicture}
\end{document}
If compiled with shell-escape enabled, this will automatically convert the resulting vector image back into a pixel graphic.
If you don't want to create a separate file with the LaTeX code, you can directly use it from the CLI via
pdflatex --shell-escape "\documentclass[tikz,convert]{standalone}\begin{document}\begin{tikzpicture}[inner sep=0pt]\node {\includegraphics{example-image-duck}};\draw[red] (0.5,0.75) -- (0.75,0.5) -- (0.5,0.1) -- (0.25,0.5) -- cycle;\end{tikzpicture}\end{document}"
See https://topanswers.xyz/tex?q=4461 for a review of tools to convert the resulting vector image back into a pixel graphic
0 comment threads
The following users marked this post as Works for me:
User | Comment | Date |
---|---|---|
matthewsnyder |
Thread: Works for me Exactly what I was hoping for! Magic, indeed. |
Aug 21, 2023 at 22:15 |
This is an ideal case for ImageMagick.
Given input.png:
Running this command:
convert input.png -draw 'fill yellow fill-opacity 0.5 polygon 50,50 100,30 150,50 100,150' output.png
Produces output.png:
For far more information, see the documentation.
0 comment threads