Ich möchte den Unterschied zwischen zwei Bildern berechnen. Ich interessiere mich nur für den Unterschiedswert für eine bestimmte Bildportion. Dafür kopiere ich den benötigten Teil des Bildes in ein temporäres Bild und arbeite an diesen Bildern. Verwenden Sie jedoch die Pixelzuweisung, die wie unter http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_core/py_basic_ops/py_basic_ops.html angegeben verwendet wird. Hier ist es gegeben,OpenCV Python Kopieren bestimmter Teil des Bildes zu einem anderen
ball = img[280:340, 330:390] img[273:333, 100:160] = ball
Unter Verwendung der ähnlichen Logik, die ich geschrieben habe ein Python-Programm,
import cv2
import numpy as np
img_file = 'carparking2_1.jpg'
img = cv2.imread(img_file, cv2.IMREAD_COLOR)
img_withoutcar = 'carparking2_1.jpg'
img_withcar = 'carparking2.jpg'
img1 = img_withoutcar[47:151, 106:157]
img2 = img_withcar[47:151, 106:157]
diff1 = cv2.absdiff(img1, img2)
diff2 = cv2.absdiff(img1, img1)
print 'RGB shape: ', img.shape # Rows, cols, channels
print 'Difference with car and without: ', diff1
print 'Difference with car and with car: ', diff2
jedoch im die Ausgangsmeldung zu erhalten:
File "D:/Projects/IoT Smart Parking/differenceinframes.py", line 8, in <module>
img1 = img_withoutcar[47:151, 106:157]
TypeError: string indices must be integers, not tuple
Ich bin Ausführen von Python 2.7 mit OpenCV 3.1.0 unter Windows 10.