Failure to use adaptiveThreshold: CV_8UC1 in function adaptiveThreshold
you should load your file like this
src.create(rows, cols, CV_8UC1);
src = imread(your-file, CV_8UC1);
and after that
adaptiveThreshold(src, dst, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 75, 10);
you can change the code to slightly like this :
img_blur = cv2.medianBlur(self.cropped_img,5).astype('uint8')
img_thresh_Gaussian = cv2.adaptiveThreshold(img_blur, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)
just by adding ('uint8') while blurring has resolved my issue.
you have to imread your image in grayscale, so use the code below:
image = imread('address', 0)
0 exchange the channel of image to grayscale
The problem is that you are trying to use adaptive thresholding to an image that is not in greyscale. And the function only works with a greyscale images.
So you have to convert your image to a greyscale format as it is described in documentation.
They read the image in a greyscale format with: img = cv2.imread('dave.jpg',0)
. You can also convert it to greyscale with: img_grey = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)