如何在Wolfram Mathematica中计算上图标记点间的像素距离?
在Wolfram Mathematica中计算图像标记点的像素距离
嘿,我来教你怎么搞定这个问题,步骤很直观,跟着做就行:
第一步:导入目标图像
先把你的图片导入Mathematica里,用Import函数就行,替换成你的图片实际路径:img = Import["你的图片文件路径"];第二步:获取标记点的坐标
有两种实用方式获取点的坐标:- 手动点选:如果你需要自己精准选图里的标记点,可以用这段代码创建一个交互式工具——点击"添加点"后在图像上点选标记点,坐标会自动存在
points变量里:points = {}; Manipulate[ Show[img, Graphics[{Red, PointSize[0.02], Point[#] & /@ points}]], Button["添加点", AppendTo[points, MousePosition["Graphics"]]], Button["清除点", points = {}] ] - 自动检测:如果图里的标记点是明显的色块(比如你图里的红色点),可以用
BlobDetect自动识别这些点的坐标,省得手动一个个点:detectedPoints = BlobDetect[img, MinBlobSize -> 5];
- 手动点选:如果你需要自己精准选图里的标记点,可以用这段代码创建一个交互式工具——点击"添加点"后在图像上点选标记点,坐标会自动存在
第三步:计算像素距离
拿到两个点的坐标后,用Norm函数计算欧氏距离,结果就是它们之间的像素距离啦:
比如手动选点后,计算前两个点的距离:Norm[points[[2]] - points[[1]]]如果是自动检测的点,把变量替换成
detectedPoints就行。
内容的提问来源于stack exchange,提问作者yasin
相关产品推荐
相关产品推荐

