我正在尝试清理上面的图像我已经尝试了几种使用open cv的不同方法,我要么过多地侵蚀原始图像,使得部分字母丢失,如下所示:
我不确定如何摆脱最后一条对角线并修复S,到目前为止,我的代码是:
import cv2
import matplotlib.pylab as plt
img = cv2.imread('/captcha_3blHDdS.png')
#make image gray
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#Blur
blur = cv2.GaussianBlur(gray,(5,5),0)
bilateral = cv2.bilateralFilter(gray,5,75,75)
#Thresholding
ret, thresh = cv2.threshold(bilateral,25,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)
#Kernal
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
#other things
erosion = cv2.erode(thresh,kernel,iterations = 1)
closing = cv2.morphologyEx(erosion, cv2.MORPH_CLOSE, kernel, iterations = 1)
#Transform image
dist_transform = cv2.distanceTransform(closing,cv2.DIST_L2,5)
ret, sure_fg = cv2.threshold(dist_transform,0.02*dist_transform.max(),255,cv2.THRESH_BINARY)#,255,0)
#kernel_1
kernel_1 = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (1, 2))
dilation_1 = cv2.dilate(sure_fg,kernel_1,iterations = 2)
erosion_1 = cv2.erode(dilation_1,kernel_1,iterations = 3)
plt.imshow(erosion_1, 'gray')
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,以下是更多从验证码产生的图像类型的例子;

还包含指向包含 …
我可以使用Python中的OpenCV从我的网络摄像头获取帧.camshift示例接近我想要的,但我不希望人为干预来定义对象.我想获得在几帧的过程中改变的总像素的中心点,即移动物体的中心.
我使用以下代码从早到晚计算实时网络摄像头的人数
people_list = []
while True:
_, frame = video_capture.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(gray, 1.3, 5)
detections = faceCascade.detectMultiScale(gray, 1.15, 5)
for i in range(len(detections)):
face_i = detections[i]
x, y, w, h = face_i
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 222, 0), 1)
font = cv2.FONT_HERSHEY_SIMPLEX
people_list.insert(len(people_list)+1,i)
cv2.putText(frame, "id: "+str ( people_list[i]), (x, y), font, 2, (255, 255, 255), 2, cv2.LINE_AA)
# Display the resulting frame
cv2.imshow('Video', frame)
Run Code Online (Sandbox Code Playgroud)
每次检测到新面孔时,people_list计数都会增加.但是,每个帧而不是每个新面都会增加people_list计数.我怎样才能解决这个问题?
我需要使用opencv获得高斯混合的背景模型.我知道在C++中有一个名为getBackgroundImage的方法我搜索了是否可以在python接口中获取它但我没有得到好的结果.我试过opencv 3.0.0-dev因为它有BackgroundSubtractorMOG2实现,但是help()函数没有为背景模型记录方法实现.你知道是否有无证实施?我搜索了如何编辑opencv源来实现python实现,但我还没有找到有关它的文档.我更喜欢避免使用scipy.weave来编译c ++代码,而且我不知道scipy.weave在这种情况下是否有用