if int(playerNum) % 2 == 0:
print("Even")
else:
print("Odd")
函数自适应阈值在这里返回一个空矩阵,但传递的图像(img)不是空矩阵(我使用print语句检查)为什么会这样?
您可以在此处找到源代码: https://github.com/tanmay-edgelord/HandwrittenDigitRecognition/blob/master/performRecognition.ipynb
答案 0 :(得分:1)
我在https://github.com/tanmay-edgelord/HandwrittenDigitRecognition/blob/master/Digit1.jpg的图片上运行了您的代码,它按预期工作。我做的唯一更改是使用cv2.imshow()
显示图像。
import numpy as np
import cv2
# Read image in grayscale mode
img = cv2.imread(r"path\to\img",0)
# Median Blur and Gaussian Blur to remove Noise
img = cv2.medianBlur(img,3)
img = cv2.GaussianBlur(img, (5, 5), 0)
#print(img)
# Adaptive Threshold for handling lightning
im_th = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY_INV,11,5)
cv2.imshow("te", im_th)
if cv2.waitKey():
cv2.destroyAllWindows()
结果如下:
为什么你确定这是一个空矩阵?如果您只是从[0 0 0 ..., 0 0 0]
判断,这是一个非常大的数组。 Python只是将其显示为数组的简写版本。只需使用np.maximum(img_th)
获取数组中的最大值,您就会看到最大值非零。