大量图片进行自适应处理

2024-09-02 09:52

本文主要是介绍大量图片进行自适应处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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 = filenameimg = 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)/2if i == 255:p = 255g.append(p)g = np.array(g)#print("g",g.shape)#print("g:",g)#全局平均阈值 这里除pi没有意义 因为全局总pi=1M = np.sum(np.dot(hist, g))#print("MG:",M)max =0for 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))**2if max < score:max = scorethreshold = 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")

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

这篇关于大量图片进行自适应处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1129638

相关文章

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir