首页 > 解决方案 > Python OpenCV DrawContours

问题描述

我正在尝试创建一个程序来破译特定类型的验证码。

我的方法是将验证码拆分为不同的字符(始终由 5 个、仅小写字母和数字组成)并将每个字符存储在一个单独的文件夹中,以便拥有一个用于训练的数据库,然后看看它的性能如何。

尝试使用 openCV 查找轮廓时遇到问题。

这是我的代码:

import numpy as np
import cv2

im = cv2.imread('4n2gd.png')
imcopy = im.copy()
imgray = cv2.cvtColor(imcopy,cv2.COLOR_BGR2GRAY)

img = cv2.medianBlur(imgray,5)
th = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,11,2)

finimg = cv2.bitwise_not(th)
im2, contours, hierarchy = cv2.findContours(finimg,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

cv2.drawContours(im, contours, -1, (0,255,0), 1)
cv2.imwrite('modified.png',im)

初始图像: 在此处输入图像描述

绘制轮廓的图像: 在此处输入图像描述

问题是我希望 CHAIN_APPROX_SIMPLE 在黑色像素的情况下围绕每个集合制作矩形,但它的功能与 CHAIN_APPROX_NONE 相同。

我应该怎么做才能修改它?

标签: pythonpython-3.xpython-2.7opencvcv2

解决方案


推荐阅读