大量图片进行自适应处理

首先我们手里有一个视频,但是我们对视频进行图像处理的话视频很难暂停进行观察,我们可以写一个按键坚挺,但是小编这里介绍另一个办法,大致思路为,把视频进行截帧为图片的集合,再对该集合进行统一的图像处理,那如何来实现呢

PotPlayer

首先我们需要下载该软件,用来把视频变为图片集合

打开软件

接下来我们导入视频

然后我们按下快捷键 Ctrl + G,进入快速截取模式设置

 

 在这里可以设置保存图片的位置,以及保存格式,张数选择等等,大家根据需求自行选择

完成上述操作以后我们点击开始,并且点击播放按钮,就开始帮我们开始截帧了

我们就完成了对视频进行拆解为大量的图片来,接下来我们对这些图片进行统一的图像处理

我们使用的是OTSU算法

import os
import cv2 
import numpy as np
def read_path(file_pathname):
    for filename in os.listdir(file_pathname):
        print(filename)
        #filename = filename
        img = cv2.imread(file_pathname+'/'+filename)

        ############      大津法     ################
        gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
        hist,bins  = np.histogram(gray.ravel(),bins = 255,density=True)#输出0~255灰度等级分布概率
        #查看hist长度
        #print("hist:",hist.shape)
        #print("hist:",hist)
        #print("bins",bins.shape)
        #print("bins",bins)
        #创建像素级数组
        g = []
        for i in range(1,256):
            p = (i + i +1)/2
            if i == 255:
                p = 255
            g.append(p)
        g = np.array(g)
        #print("g",g.shape)
        #print("g:",g)
        #全局平均阈值 这里除pi没有意义 因为全局总pi=1
        M = np.sum(np.dot(hist, g))
        #print("MG:",M)
        max =0
        for n in range(0,256):
            m1 = np.sum(np.dot(hist[0:n],g[0:n]))/np.sum(hist[0:n])
            m2 = np.sum(np.dot(hist[n:256], g[n:256]))/np.sum(hist[n:256])
            score = sum(hist[0:n])*((m1 - M))**2 + sum(hist[n:256])*((m2 - M))**2
            if max < score:
                max = score
                threshold = n
        #print("OTSU",threshold)
        #调用大津算法
        ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
        #print("threshold value %s" % ret) 
        #cv.imshow("threshold", binary) #显示二值化图像
        #调用阈值实验
        # 取反操作:将0变为255,将255变为0  
        inverted_image = 255 - binary 

        cv2.imwrite("D:\\2" + "/" + filename, inverted_image)

read_path("D:\\shinei.mp4")

把上面的路径进行修改即可完成大规模的图片的图像处理了

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值