滑窗法

# -*- coding: utf-8 -*
import cv2

def imshow(imgname,img):
    h ,w = img.shape[:2]
    cv2.namedWindow(imgname, cv2.WINDOW_NORMAL)
    cv2.resizeWindow(imgname, int(w * 0.3), int(h * 0.3))
    cv2.imshow(imgname, img)

def SlidWindow(img,winSize,winStep):
    retGlobal, im21 = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
    print("retGlobal:", retGlobal)
    # 定义初始值
    x = 0
    y = 0
    w = img.shape[1]
    h = img.shape[0]

    while(1):#整个循环过程是个死循环
        if(x + winSize + winStep > w):#图的右边边界,42可以自己给定,6是步进的
            x = 0
            y += winStep#步进为6
            x += winStep
        if(y + winSize > h):#不满足条件,退出结束
            break
        else:
            x = x + winStep
        # print(x, y, x + winSize, y + winSize)
        imcopy = img.copy()
        imcopy2 = img.copy()
        imcopyRoi = imcopy2[y:y+ winSize,x:x+ winSize]
        cv2.rectangle(imcopy, (x, y), (x + winSize, y + winSize), (0, 0, 0), 5)
        retLocal, im3 = cv2.threshold(imcopyRoi, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)

        thre = 0
        if retGlobal > retLocal:
            thre = retGlobal
        else:
            thre = retLocal

        ret, result = cv2.threshold(imcopyRoi, thre, 255, cv2.THRESH_BINARY)
        imshow("result", result)  # 显示

        imshow("imcopy",imcopy)#显示
        cv2.waitKey(10)  # 按0退出


if __name__ == '__main__':
    # img = cv2.imread('20200608\\20200608183812.jpg',0)  #识别的好的
    img = cv2.imread('20200608\\202006081838126.jpg', 0)  # 识别的不好的
    # img = cv2.Canny(img, 100, 200)
    # dst = cv2.equalizeHist(img)


    winSize = 100
    winStep = 20
    SlidWindow(img, winSize, winStep)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值