如何标记图像的各个部分?

如何标记图像的各个部分?

可能重复:
如何将 LaTeX 叠加到图片上?

以此图为例:

在此处输入图片描述

如何像上面那样向图像添加标签,而无需手动绘制线条并在线末尾添加文本?

答案1

您可以尝试以下操作。在代码中,文件can是您的图像。

\documentclass{article}

\usepackage{tikz}

\begin{document}

\begin{tikzpicture}

\node at (5,5) {\includegraphics[scale=0.5]{can}};

%to help place things, draw a grid
%remove grid when done
\draw (0,0) grid (10,10);

\draw (5,5) -- ++(4,0) node[above=5pt,anchor=south east,inner sep=0] {this is a label};

\end{tikzpicture}

\end{document}

结果是

在此处输入图片描述

答案2

因为你的图片已经有注释,所以我使用下面的图片作为示例。

在此处输入图片描述

grenade.eps然后我使用 ImageMagick将其转换为 EPS(命名为)。

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pstricks-add}


\usepackage{graphicx}
\newsavebox\ImageBox
\savebox\ImageBox{\includegraphics[width=0.9\linewidth]{grenade}}

\def\Rows{5}
\def\Columns{5}

\addtopsstyle{gridstyle}
{
    subgriddiv=5,
    subgridcolor=lightgray,
    gridcolor=blue,
    subgriddots=10,
    griddots=100,
}

\psset
{
    xunit=\dimexpr\wd\ImageBox/\Rows,
    yunit=\dimexpr\ht\ImageBox/\Columns,
    nodesepA=3pt,
    linecolor=red,
}

\begin{document}

\begin{pspicture}[showgrid=top](-\Columns,0)(\Columns,\Rows)% turn off the grid by setting showgrid=false
\rput[b](0,0){\usebox\ImageBox}
% Pull Ring
\psComment[ref=l,angleA=180](4,3)(1.9,3.5){\large Pull Ring}[\ncdiagg]
% Safety Pin
\psComment[ref=l,angleA=180](4,4.8)(0.95,4.4){\large Safety Pin}[\ncdiagg]
% Body
\psComment[ref=r](-4,4)(0,2){\large Body}[\ncdiagg]
\end{pspicture}
\end{document}

不要忘记使用xelatexlatex-dvips-ps2pdf序列编译源代码。

没有网格的输出如下。

在此处输入图片描述

如果在开发过程中需要网格来查找节点坐标。

在此处输入图片描述

答案3

在这个回答中我试图模仿提问者给出的标签。

\documentclass{article}
\usepackage{pstricks-add}
\usepackage[tightpage,active]{preview}
\setlength{\PreviewBorder}{12pt}
\PreviewEnvironment{pspicture}

\usepackage{graphicx}
\newsavebox\ImageBox
\savebox\ImageBox{\includegraphics[width=0.9\linewidth]{grenade.eps}}

\newcommand\Rows{5}
\newcommand\Columns{5}

\newpsstyle{gridstyle}
{
    subgridcolor=green!20,
    subgridwidth=0.05pt,
    gridcolor=cyan!30,
    gridwidth=0.1pt,
    subgriddiv=2,
}

\psset
{
    xunit=\dimexpr\wd\ImageBox/\Rows\relax,
    yunit=\dimexpr\ht\ImageBox/\Columns\relax,
    style=gridstyle,
    linecolor=red,
}

\def\mylabel(#1,#2,#3)[#4][#5][#6]{
    \dotnode(#1,#3){#4start}
    \pnode(#2,#3){#4stop}
    \ncline{#4start}{#4stop}
    \rput[#6](#4stop){\large #5}
}
\begin{document}

\begin{pspicture}(-\wd\ImageBox,0)(\wd\ImageBox,\ht\ImageBox)
\rput[b](0,0){\usebox\ImageBox}
%\psgrid
% Pull Ring
\mylabel(1.9,4,3.5)[pr][Pull Ring][br]
% Safety Pin
\mylabel(0.95,4,4.4)[sp][Safety Pin][br]
% Body
\mylabel(0,-4,2)[b][Body][bl]
\end{pspicture}
\end{document}

在此处输入图片描述

相关内容