我有一个图像(抱歉无法将其链接用于版权目的),其中的字符用黑线标出。描绘角色的黑线是图片中最黑暗的东西(计划使用这个事实来帮助找到它)。我需要做的是获得四个坐标,在角色周围绘制一个虚拟框。该框应尽可能小,同时仍将轮廓字符保留在其内容中。我打算使用这个盒子来帮助通过使用盒子的中心点来确定角色图形的中心点。
我开始尝试识别大纲的一部分。由于它是图像上最暗的一行,我使用getextrema()在轮廓上获得至少一个点,但我无法弄清楚如何获得更多的点然后将这些点组合成一个盒子。
非常感谢对这个问题的任何见解。干杯!
这就是我现在所拥有的:
im = Image.open("pic.jpg")
im = im.convert("L")
lo, hi = im.getextrema()
im = im.point(lambda p: p == lo)
rect = im.getbbox()
x = 0.5 * (rect[0] + rect[2])
y = 0.5 * (rect[1] + rect[3])
进入这个数字似乎非常一致,但它真的不是那么接近中心。知道为什么吗?
答案 0 :(得分:1)
lambda p: p < T
)。thresholdedImage.getbbox()
获取大纲的边界框