Próbuję obliczyć Canny Edge na obrazie (ndarray) używając OpenCV z Pythonem.Błąd głębokości w obrazie 2D z OpenCV Python
slice1 = slices[15,:,:]
slice1 = slice1[40:80,60:100]
print slice1.shape
print slice1.dtype
slicecanny = cv2.Canny(slice1, 1, 100)
wyjściowa:
(40, 40)
float64
...
error: /Users/jmerkow/code/opencv-2.4.6.1/modules/imgproc/src/canny.cpp:49:
error: (-215) src.depth() == CV_8U in function Canny
Z jakiegoś powodu otrzymuję powyższy błąd. Jakieś pomysły, dlaczego?
może trzeba konwertować typ danych do pływaka (CV_32F) od Canny zrobić Gaussa filtrowanie, które (jeśli OpenCV używać Filter2D) wymaga wprowadzania danych pływak. – jgmao
Próbowałem konwertowanie na float32 i integers, a nie szczęście. Próbowałem również: slice2 = cv2.GaussianBlur (slice1, (5,5), 1) slicecanny = cv2.Canny (slice2,1,100) – jmerkow
W wyniku błędu: błąd: (-215) src.depth() == CV_8U w funkcji Canny. Być może byłem kompletny w złym kierunku. Czy próbujesz przekonwertować na CV_8U jako dane wejściowe (nie całkowite, ponieważ liczba całkowita nie jest równa UInt8). – jgmao