迭代Python OpenCV中的部分图像

时间:2013-08-25 00:30:25

标签: python opencv

首先感谢我从本网站获得的所有答案。

我是OpenCV的新手,非常喜欢使用这个神奇的工具。 我正在尝试构建的是一个应用程序,它可以制作一个停止运动序列,这是某人在写作时写在空白纸上的内容。棘手的部分是我不想用文字前面的作家手保存图像。

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

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

  • 以空白页开头,保存整个图像
  • 完成在页面的左半部分写一个句子并且手放在页面的右半部分,新保存的图像将是新的左半部分与旧的右半部分合并(因为手已经挡住了)< / LI>
  • 同样的逻辑适用于上半部分和下半部分
  • 稍后会将此逻辑扩展到页面上的网格,而不仅仅是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)

有人可以帮我解决如何进行此迭代并使用其他部分构建新图像吗?

谢谢!

0 个答案:

没有答案