Функция, которую я использовал для поворота структурирующего элемента, приведена ниже:
import cv2
import numpy
def rotate_bound(image,angle):
(h,w) = image.shape[:2]
(cx,cy) = (w/2,h/2)
M = cv2.getRotationMatrix2D((cx,cy),-angle,1.0)
print(M.shape)
print(M)
cos = np.abs(M[0,0])
sin = np.abs(M[0,1])
nW = int((h*sin)+(w*cos))
nH = int((h*cos)+(w*sin))
M[0,2] += (nW/2) - cx
M[1,2] += (nH/2) - cy
return cv2.warpAffine(image,M,(nW,nH))
element = np.ones((21,1))
rotated_element = rotate_bound(element, 30)
rotated_element[rotated_element == 0] = 10
result = cv2.morphologyEx(image, cv2.MORPH_TOPHAT, rotated_element)
Спасибо за помощь от @ fmw42:)