亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中驗證碼連通域分割的方法詳解

發布時間:2020-09-30 20:49:42 來源:腳本之家 閱讀:202 作者:waitingfy 欄目:開發技術

實現思路

是用深度遍歷,對圖片進行二值化處理,先找到一個黑色像素,然后對這個像素的周圍8個像素進行判斷,如果沒有訪問過,就保存起來,然后最后這個數組的最小x和最大x就是x軸上的切割位置。這種分割的方法還是只能適用于沒有粘連的驗證碼,比垂直分割的好處是,可以處理位置比較奇怪的驗證碼。

示例代碼

def cfs(img):
 """傳入二值化后的圖片進行連通域分割"""
 pixdata = img.load()
 w,h = img.size
 visited = set()
 q = queue.Queue()
 offset = [(-1,-1),(0,-1),(1,-1),(-1,0),(1,0),(-1,1),(0,1),(1,1)]
 cuts = []
 for x in range(w):
 for y in range(h):
  x_axis = []
  #y_axis = []
  if pixdata[x,y] == 0 and (x,y) not in visited:
  q.put((x,y))
  visited.add((x,y))
  while not q.empty():
  x_p,y_p = q.get()
  for x_offset,y_offset in offset:
   x_c,y_c = x_p+x_offset,y_p+y_offset
   if (x_c,y_c) in visited:
   continue
   visited.add((x_c,y_c))
   try:
   if pixdata[x_c,y_c] == 0:
    q.put((x_c,y_c))
    x_axis.append(x_c)
    #y_axis.append(y_c)
   except:
   pass
  if x_axis:
  min_x,max_x = min(x_axis),max(x_axis)
  if max_x - min_x > 3:
   # 寬度小于3的認為是噪點,根據需要修改
   cuts.append((min_x,max_x + 1))
 return cuts
 
def saveSmall(img, outDir, cuts):
 w, h = img.size
 pixdata = img.load()
 for i, item in enumerate(cuts):
 box = (item[0], 0, item[1], h)
 img.crop(box).save(outDir + str(i) + ".png")
img = Image.open('out/51.png')
 
saveSmall(img, 'cfs/', cfs(img))

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

參考這篇文章: https://www.jb51.net/article/141434.htm

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

清镇市| 黄梅县| 探索| 平邑县| 博罗县| 兖州市| 射洪县| 常宁市| 绥中县| 东乡族自治县| 元阳县| 沙坪坝区| 高尔夫| 淮南市| 包头市| 盐源县| 科尔| 靖宇县| 镇远县| 安西县| 禄劝| 鲜城| 莫力| 遵义市| 威远县| 长沙县| 横峰县| 洞头县| 宽甸| 罗田县| 松原市| 开原市| 海城市| 灯塔市| 固阳县| 浠水县| 寻乌县| 永定县| 丰宁| 黔江区| 惠安县|