超大图像二值化(opencvAPI)

目录

 

超大图像二值化原理

1、图像分块(区域)

2、直接过滤某些噪声块+全局阈值二值化

3、分块后局部阈值二值化 


超大图像二值化原理

1、图像分块(区域)

把一幅图像分成多个小正方形区域处理,降低大面积处理时块间相互影响造成误差

import cv2 as cv
import numpy as np
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]

 如上代码把image分割成roi=256x256的块图

2、直接过滤某些噪声块+全局阈值二值化

先过滤出一些块的标准差(或均值)小于20左右像素(噪声)块,然后直接赋值为255

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))#求图像的roi的标准差和均值
            dev = np.std(roi)
            if dev < 15:#标准差小于阈值的块赋值255
                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.imwrite("D:/vcprojects/result_binary.png", gray)

 

3、分块后局部阈值二值化 

局部阈值二值化函数其实又做了一次分块,它还自带一个过滤 

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]#两个for循环分块256X256
            dst = cv.adaptiveThreshold(roi,255,cv.ADAPTIVE_THRESH_GAUSSIAN_C,cv.THRESH_BINARY,127,20)#局部阈值二值化
            gray[row:row + ch, col:cw + col] = dst
    cv.imwrite("D:/vcprojects/result_binary.png", gray)

图像全局阈值和局部阈值二值化函数 在前面一篇文章已经讲过:https://blog.csdn.net/CHWB2580/article/details/105013858

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值