Mam trudności ze znalezieniem przykładów obracania obrazu wokół określonego punktu o określony (często bardzo mały) kąt w Pythonie przy użyciu OpenCV.Python OpenCV obraca obraz o X stopni wokół określonego punktu
To, co mam tak daleko, ale daje bardzo dziwny obraz wynikowy, ale jest nieco obrócone:
def rotateImage(image, angle):
if image != None:
dst_image = cv.CloneImage(image)
rotate_around = (0,0)
transl = cv.CreateMat(2, 3, cv.CV_32FC1)
matrix = cv.GetRotationMatrix2D(rotate_around, angle, 1.0, transl)
cv.GetQuadrangleSubPix(image, dst_image, transl)
cv.GetRectSubPix(dst_image, image, rotate_around)
return dst_image
Dzięki za pomoc, jednak używam moduł "CV" i używasz "CV2", tak narzekanie w szczególności na "image.shape" nie istnieje. Do tej pory korzystałem tylko z modułu "cv", więc nie do końca otrzymałem wszystkie zmiany z "cv2". Wiem, że mój obraz jest (140,140), więc próbowałem twardego kodowania, które zastąpiło image.shape, ale w ogóle też się to nie podobało. – Mike
Myślę, że mogłem poczynić pewne postępy, ale wciąż mam problem. Oto najnowszy kod: wynik = cv2.warpAffine (zdjęcie, rot_mat, cv.GetSize (image), flagi = cv2.INTER_LINEAR) Traceback (ostatnie połączenia): ostatni wynik = cv2.warpAffine (obraz , rot_mat, cv.GetSize (obrazu), flagi = cv2.INTER_LINEAR) Błąd typu: nie jest numpy tablica –
Mike
że problem z uruchomieniem cv2.getRotationMatrix2D (środkowy = image_center, kąt = kąt, skala = 1) TypeError: funkcja przyjmuje dokładnie 2 argumenty (3 dane) – Hani