0

首先感谢我已经从这个网站得到的所有答案。

我是 OpenCV 的新手,非常喜欢使用这个神奇的工具。我正在尝试构建的是一个应用程序,它可以在某人在写字时对他在一张空白纸上所写的内容进行定格动画序列。棘手的部分是我不想将作者的手放在文本前面来保存图像。

在过去的两周里,我一直在使用 Python 和 OpenCV 2 开发这个应用程序。已经处理了透视变化和简单的图像调整以仅显示文本(非常感谢这个博客: http: //opencvpython.blogspot.com。 br/它是数独求解器示例)。我最近的成就是检测图像前面是否有一只手,我使用 cv2.threshold 和 cv2.countNonZero 来查看图像中是否有太多黑色像素,(我知道它有时可能会失败,但我现在工作,有没有人对如何处理这个问题有更好的想法?)所以基本上,如果作者将手从页面上移开,图像就会被保存,如果他的手在页面上它不会保存。

我的下一个想法是对页面的各个部分应用相同的逻辑,例如:

  • 从空白页开始,保存整个图像
  • 在页面的左半边写完一个句子并且手放在页面的右半边,新保存的图像将是新的左半边与旧的右半边合并(因为手挡住了)
  • 相同的逻辑适用于上半部分和下半部分
  • 稍后会将这个逻辑扩展为页面上的一个网格,而不是只有 4 个部分

这是我到目前为止所得到的,显然没有工作,因为我在将图像视为数组时遇到了麻烦

p=2 #number of pieces accross page, starting with 2
w=width/p
h=height/p

new_img = []   #new image

for y in range(np.size(firstimage,0),h):
    for x in range(np.size(firstimage,1),w):
        old_part = firstimage[y:y+h,x:x+w]
        new_part = newimage[y:y+h,x:x+w]
        if (countBlackPixels(new_part) < int((countBlackPixels(old_part))*5 )):
            new_img = new_img + new_part
        else:
            new_img = new_img + old_part

new_img = new_img.astype(np.float32)

有人可以帮助我如何进行此迭代并与其他人一起构建新图像吗?

谢谢!

4

0 回答 0