2014-06-09 10 views
5

Jak zmienić tablicę numpy w obraz w skali szarości opencv w pythonie? Po pewnym przetwarzaniu otrzymałem tablicę z następującymi atrybutami: maksymalna wartość to: 0.99999999988, wartość min to 8.269656407e-08, a typ to: <type 'numpy.ndarray'>. Mogę pokazać go jako obraz używając cv2.imshow() funkcję, ale nie mogę przekazać go do cv2.AdaptiveTreshold() funkcji, ponieważ ma zły typ:Jak zmienić tablicę numpy w obraz w skali szarości obraz opencv

error: (-215) src.type() == CV_8UC1 in function cv::adaptiveThreshold 

Jak mogę przekonwertować ten np.array skorygować formatu?

Odpowiedz

9

Zgodnie z twierdzeniem, adaptiveThreshold() wymaga jednokanałowego obrazu 8-bitowego.

Zakładając, że zmiennoprzecinkowych obrazu waha się od 0 do 1, który wydaje się być przypadek, można przekonwertować obraz przez pomnożenie przez 255 i oddające do np.uint8:

float_img = np.random.random((4,4)) 
im = np.array(float_img * 255, dtype = np.uint8) 
threshed = cv2.adaptiveThreshold(im, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 3, 0) 
Powiązane problemy