Python 带有自适应阈值的OpenCV错误
我试图通过openCV捕捉视频,然后对视频应用自适应阈值(转换为黑白)。问题是这段代码经常抛出错误。我正在使用自适应阈值函数中的最后两个数字Python 带有自适应阈值的OpenCV错误,python,opencv,Python,Opencv,我试图通过openCV捕捉视频,然后对视频应用自适应阈值(转换为黑白)。问题是这段代码经常抛出错误。我正在使用自适应阈值函数中的最后两个数字 cv2.error:/tmp/opencv-UA2sOU/opencv-2.4.9/modules/imgproc/src/thresh.cpp:797:error:(-215)函数自适应阈值中的blockSize%2==1&&blockSize>1 我似乎不明白是什么导致了这个问题 import numpy as np import cv2 import
cv2.error:/tmp/opencv-UA2sOU/opencv-2.4.9/modules/imgproc/src/thresh.cpp:797:error:(-215)函数自适应阈值中的blockSize%2==1&&blockSize>1
我似乎不明白是什么导致了这个问题
import numpy as np
import cv2
import pylab as pl
cap = cv2.VideoCapture(0)
# take first frame of the video
ret,frame = cap.read()
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
thresh = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,40,15)
cv2.imshow('frame',thresh)
if cv2.waitKey(1) & 0xFF == ord('q'):
#cv2.imwrite("snap.jpg", thresh)
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
需要奇数块大小
。所以你需要用39或41而不是40
blockSize–用于计算像素阈值的像素邻域大小:3、5、7等
错误消息表明了这一点:它显示“blockSize%2==1
”,这意味着blockSize
不能被2整除。您知道为什么这是真的吗?非常感谢。虽然可能实现均匀的窗口大小,但通常需要围绕像素的对称窗口。这仅适用于奇数窗口大小,例如具有恒定宽度边界的像素。否则,平均值将在一侧包含比另一侧更多的像素。