在图片比较大的情况下,使用第十五节讲的方法,会出现处理速度慢和处理效果不佳的情况。对于超大图象二值化一般都会进行分块。超大图象一般会分块以后使用全局二值化,或者使用局部二值化。并且应使用自适应阈值,全局阈值会收到图象噪声的影响代码如下
import cv2 as cv
import numpy as np
def big_img_binary(img):
# 定义分割块的大小
cw = 256
ch = 256
h,w = img.shape[:2]
# 将图片转化为灰度图片
gray = cv.cvtColor(img,cv.COLOR_RGB2GRAY)
for row in range(0,h,ch):
for col in range(0,w,cw):
roi = gray[row:row+ch,col:col+cw]
dst = cv.adaptiveThreshold(roi,255,cv.ADAPTIVE_THRESH_GAUSSIAN_C,cv.THRESH_BINARY,127,20)
gray[row:row+ch,col:col+cw]=dst
cv.imwrite('rb.png',gray)
src=cv.imread('textImg.jpg')
big_img_binary(src)
cv.waitKey(0)
cv.destroyAllWindows()
觉得不错打赏一下 | |
---|---|