私はMoravec検出を使用しようとしています。このコードを実行しようとすると、何らかのエラーが発生します。TypeError: - : 'tuple'と 'tuple'のためのサポートされないオペランドタイプ
diff = diff - image.getpixel((x, y))
TypeError: unsupported operand type(s) for -: 'tuple' and 'tuple'
どうすれば修正できますか?どんな助けもありがとう。コードは次のとおりです。
def moravec(image, threshold = 100):
"""Moravec's corner detection for each pixel of the image."""
corners = []
xy_shifts = [(1, 0), (1, 1), (0, 1), (-1, 1)]
for y in range(1, image.size[1]-1):
for x in range(1, image.size[0]-1):
# Look for local maxima in min(E) above threshold:
E = 100000
for shift in xy_shifts:
diff = image.getpixel((x + shift[0], y + shift[1]))
diff = diff - image.getpixel((x, y))
diff = diff * diff
if diff < E:
E = diff
if E > threshold:
corners.append((x, y))
return corners
if __name__ == "__main__":
threshold = 100
image = Image.open('all.jpg')
corners = moravec(image, threshold)
draw_corners(image, corners)
image.save('low2.png')
タプルを別のタプルから直接減算することはできません。代替案[here](http://stackoverflow.com/questions/17418108/elegant-way-to-perform-tuple-arithmetic)を参照してください。 –