def adaptive_gaussian_thresholding(self, filename):
im = cv2.imread(filename, 0)
filtered_image = cv2.adaptiveThreshold(im, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, 3, cv2.THRESH_BINARY, 3, 0)
cv2.imwrite(filename, filtered_image)
filtered_image = cv2.adaptiveThreshold(im, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, 3, cv2.THRESH_BINARY, 3, 0) error: /root/opencv/modules/imgproc/src/thresh.cpp:1287: error: (-215) blockSize % 2 == 1 && blockSize > 1 in function adaptiveThreshold
ブロックサイズまたはタイルのサイズは、プロシージャに渡されるカーネルに使用する画素^ 2の数です。それは奇数である必要があります。これがバグか他の何かが間違っているかどうかわかりません。あなたはpythonでその関数のhelp()
を呼び出して行う場合、呼び出しは次の形式を尊重する必要がOpenCVのパイソン誤っブロックサイズ
おかげで、あなたはファイルのための「DST」または目的地srcを欠けているように見えました。入力は指定しましたが、出力は指定していません。 – user5275692
@ user5275692 Pythonバインディングでは、アルゴリズムの出力はほとんどの場合関数から返されるため、 'filtered_image'が出力になります。 'dst'パラメータは純粋にオプションであり、C++ APIからのホールドオーバーです。 – Aurelius