自学python-opencv(3)超大图像二值化
import cv2
import numpy as np
def large_image_binary(images):
#超大图像二值化
print(images.shape)
cw=128
ch=128
h,w=images.shape[0:2]
gray=cv2.cvtColor(images,cv2.COLOR_BGR2GRAY)
for row in range(0,h,ch):
for col in range (0,w,cw):
#获取分块
roi=gray[row:row+ch,col:col+cw]
print(np.std(roi), np.mean(roi))
#针对空白图像,不处理,可以提高效率或者去噪
dev=np.std(roi)
#小于15的值 过滤成白色
if dev<15:
gray[row:row + ch, col:col + cw] = 255
else:
#局部阈值也会很清晰
#dst=cv2.adaptiveThreshold(roi,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,27,22)
#全局阈值采用这种
'''
并且在cv2.threshold的方法参数中还得加上语句cv2.THRESH_OTSU
这里面第三个参数maxval参数表示与THRESH_BINARY和THRESH_BINARY_INV阈值类型一起使用设置的最大值。
而我们使用的灰度图像最大则为255,所以设置为255即可
THRESH_OTSU最适用于双波峰 THRESH_TRIANGLE最适用于单个波峰,最开始用于医学分割细胞等'''
ret,dst=cv2.threshold(roi,0,255,cv2.THRESH_BINARY|cv2.THRESH_OTSU)
gray[row:row + ch, col:col + cw] = dst
#np.mean 数组求均值
#print(np.std(dst),np.mean(dst))
cv2.imwrite("./images/shufathreshold.png",gray)
print("-----------hi python-------------")
img=cv2.imread("./images/shufa.jpg")
cv2.namedWindow("imput images",cv2.WINDOW_AUTOSIZE)
cv2.imshow("imput images",img)
large_image_binary(img)
cv2.waitKey(0)
cv2.destroyWindow('all')
--------------------------------------------------------------------------------------------
1.可以采用分块方法
2.先缩放处理就行二值化,然后还原大小
numpy.mean(a, axis, dtype, out,keepdims )
mean()函数功能:求取均值
经常操作的参数为axis,以m * n矩阵举例:
axis 不设置值,对 m*n 个数求均值,返回一个实数
axis = 0:压缩行,对各列求均值,返回 1* n 矩阵
axis =1 :压缩列,对各行求均值,返回 m *1 矩阵
--------------------------
import numpy as np
print(np.std(binary),np.mean(binary))
通过上面获取图像的标准差和平均值,当标准差为0,平均值为255时,代表该区域为空白区域
arr = [1, 2, 3, 4, 5]
# 均值
np.mean(arr)
# 方差
np.var(arr)
# 标准差
np.std(arr)
-----------------------------------------------------------------------------------
binary = cv.adaptiveThreshold(roi, 255,cv.ADAPTIVE_THRESH_GAUSSIAN_C,cv.THRESH_BINARY, 127, 20) #局部阈值
-------------------------------------------------------------------------------------
ret,binary = cv.threshold(roi, 0, 255,cv.THRESH_BINARY|cv.THRESH_OTSU) #全局阈值
-----------------------------------------------------------------------------------

其实你不知道
在你给我糖的时候
有人给了我蛋糕
我没要
我没要蛋糕我不后悔
后悔的是
我以为这颗糖会一直甜
浙公网安备 33010602011771号