【问题标题】:How to find sizes and shapes of Microsoft Powerpoint objects?如何查找 Microsoft Powerpoint 对象的大小和形状?
【发布时间】:2015-07-05 08:57:34
【问题描述】:

我有一张幻灯片,上面有一些手绘的圆圈。我想获得它们的坐标和半径(大小)的列表。附上一张图片和link。有人知道怎么做吗?

我开始研究计算机视觉技术,但似乎应该有更直接的方法。

【问题讨论】:

标签: image-processing computer-vision powerpoint


【解决方案1】:

如果您熟悉 openCV,则 HoughCircles() 方法可以完成这项工作: http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/hough_circle/hough_circle.html

你熟悉 Matlab 吗? imfindcircles() 会这样做: http://www.mathworks.com/help/images/ref/imfindcircles.html

如果这是一次性工作,您可以将其发布为其他人为您完成的工作,只需支付少量费用。示例:https://www.mturk.com/mturk/welcome

如果您不会任何编程语言并且这是一次性的工作,您可以手动完成。您可以在 Photoshop 中选择每个圆,计算像素数量(并使用圆周 = 2*pi*radius 的公式)找到半径。所有像素的质心将是圆的中心。 分开重叠的圆圈有点棘手,但您可以手动完成

【讨论】:

  • 不清楚您是要获取 PowerPoint 形状的坐标/半径,还是在 PPT 演示期间从 PPT 导出的图像或幻灯片放映屏幕上获取形状对向的区域的坐标/半径。在 PPT 中,每个形状都有 .Top .Left .Height 和 .Width 属性,它们为您提供位置和大小。假设 .Height = .Width,则半径 = .Width * .5 PPT 坐标与任何图像(在文件中或显示在屏幕上)的最终大小之间的比率应该为您提供以像素为单位的大小/位置
  • 谢谢大家。我尝试了openCV并取得了一些成功,但在其他地方发现误报时未能找到一些圈子。我今天将尝试 Matlab,看看它是否做得更好。以前我只是在 powerpoint 中访问圆形对象并直接获取它们的宽度(直径),但我更愿意自动化该过程(即:获取 PP 中所有选定形状的宽度和理想位置)。
  • 检查您的中间结果(如边缘检测的结果)以找出问题所在。一些预处理可以减少噪音并改善结果。 .霍夫圆中有一些参数可以调整以改善结果。
【解决方案2】:

我找到了一种使用矢量图形的合适方法。

  1. 选择PowerPoint中的所有圆圈,右键单击并“另存为图片”。使用 .emf(windows 图元文件)格式(此选项仅在我的 windows 机器上可用,不适用于 mac)。
  2. 在 inkscape 中打开 emf 文件,并将其保存为“svg”格式,即 ascii 和人类 readable
  3. 从路径命令中提取信息。

例如:每个圆圈都表示为一个路径对象,并带有一条线: d =“米36.527169,36.434607 C 0,-9.696733 9.075703,-17.551993 20.274845,-17.551993 11.194626,0 20.270329,7.85526 20.270329,17.551993 0,9.69264 -9.075703,17.552246 -20.270329,17.552246 -11.199142,0 -20.274845,-7.859606 - 20.274845,-17.552246"

这里,“m”字符后面的 (x,y) 是圆的中心,“c”后面的 12 个 (x,y) 对表示 4 段多贝塞尔曲线,其中 3,6 对,9,12 是四个罗盘点。因此在上面的对象中,这不是一个圆,而是一个椭圆,轴为 ~ 20.27 和 17.55。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 2017-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    相关资源
    最近更新 更多