在 MATLAB 图形上选择一个点并将标签准确地放在该点上

Selecting a point on MATLAB figure and putting label exactly on that point

我在 matlab 中有一张图像,我提示用户 select 该图像上的某些点。所以我正在使用 getpts 方法来完成它。所以它工作正常,但我只想用 X 表示用户在图像上单击的点。但是,X 不在我单击的点上,而是在它的侧面。

有谁知道如何让它死机?这是我正在使用的代码和一些图片来更明确地表示它。

谢谢你

代码:

[x_Ls y_Ls] = getpts(handles.axes1)
handles.Ls = [x_Ls y_Ls]
setappdata(0,'Lsvalue',[x_Ls y_Ls])
text(x_Ls,y_Ls,'X' , 'FontSize', 16, 'FontWeight', 'Bold', 'Color',    'k','Parent',handles.axes1); 

您的问题是,包含 "X" 的 text 对齐,其左下角位于 [x_Ls, y_Ls]。如果将 HorizontalAlignmentVerticalAlignment 设置为 "center",情况应该会有所改善。 但是由于字体总是在 "visible" 字母周围定义某些边界,因此您很难让 "X" 中心准确地位于您想要的位置。

如果您希望 "X" 以定义的点为中心,只需使用 plot 而不是 text 应该更容易:

plot(x_Ls, y_Ls, 'x', 'MarkerSize', 10, 'MarkerEdgeColor', 'b', 'MarkerFaceColor', 'b')

应该会在您点击的地方生成一个 "X"。 您可能需要增加标记大小...