使用opencv和python进行图像减法

时间:2015-10-23 17:14:51

标签: python opencv image-processing

我想从其他图片中减去一张图片。

这是我到目前为止所做的。

import cv2
import numpy as np

img1 = cv2.imread('template.jpg',0)
img2 = cv2.imread('shot_one.jpg',0)

img3 = img1-img2

cv2.imshow('result',img3)
cv2.waitKey()
cv2.destroyAllWindows()

我收到错误说:

Traceback (most recent call last):
  File "E:/Python Programme/ATSS/subtra.py", line 7, in <module>
    img3 = img1-img2
TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'

我已关注this question。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

错误行unsupported operand type(s) for -: 'NoneType' and 'int'清楚地指出,您的一个图片路径无效,Opencv不会抛出错误,当路径无效时,它会返回None对象。< / p>

import cv2
import numpy as np

img1 = cv2.imread('template.jpg',0)
img2 = cv2.imread('shot_one.jpg',0)

if img1 and img2:
    img3 = img1-img2

    cv2.imshow('result',img3)
    cv2.waitKey()
    cv2.destroyAllWindows()
else:
    print "Sorry the images weren't loaded properly."

答案 1 :(得分:0)

您确定igraph0img1的尺寸相同吗?如果不是,则不定义矩阵减法并且会引发错误。