python + opencv图像处理(十六)——超大图像二值化

本文介绍了一种处理超大图像的分块二值化算法,通过将图像分割成多个小块并分别应用全局或局部阈值,实现图像的高效处理。文章详细展示了使用Python、OpenCV和Matplotlib等工具进行图像处理的具体步骤。

分块
全局阈值和局部阈值

from matplotlib import pyplot as plt 
from cv2 import cv2 as cv
import numpy as np 


def big_image_binary(image):
    print(image.shape) #超大图像,屏幕无法显示完整
    cw = 256    # 分块的大小
    ch = 256
    h,w = image.shape[:2]
    gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY) #要二值化图像,要先进行灰度化处理
    for row in range(0,h,ch):     
        for col in range(0,w,cw):
            '''
            roi = gray[row:row+ch,col:cw+col]#获取分块
            print(np.std(roi),np.mean(roi))
            # ret,dst=cv.threshold(roi,0,255,cv.THRESH_BINARY|cv.THRESH_OTSU)#全局阈值 
            # 局部阈值
            dst = cv.adaptiveThreshold(roi,255,cv.ADAPTIVE_THRESH_GAUSSIAN_C,cv.THRESH_BINARY,127,20)
            gray[row:row+ch,col:cw+col] = dst   #分块覆盖
            print(np.std(dst),np.mean(dst))
            # 方差小于15就令为0  # 空白图像过滤
            '''
            roi = gray[row:row+ch,col:cw+col]#获取分块
            print(np.std(roi),np.mean(roi))
            dev = np.std(roi)
            if dev < 15:
                gray[row:row+ch,col:cw+col] = 255
            else:
                ret,dst=cv.threshold(roi,0,255,cv.THRESH_BINARY|cv.THRESH_OTSU)#全局阈值
                gray[row:row+ch,col:cw+col] = dst   #分块覆盖
 
    cv.imshow("big_image_binary",gray)
    cv.imwrite("C:\\pictures\\result_binary.png",gray)

if __name__ == "__main__":
	filepath = "C:\\pictures\\1(1)(1).jpg"             # 超级大图 比如5477*7777  在其他图上放大尺寸就行
	img = cv.imread(filepath)       # blue green red
	# cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
	# cv.imshow("input image",img)
	big_image_binary(img)
	
	cv.waitKey(0)
	cv.destroyAllWindows()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值