大量图片进行自适应处理

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处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

Python处理函数调用超时的四种方法

《Python处理函数调用超时的四种方法》在实际开发过程中,我们可能会遇到一些场景,需要对函数的执行时间进行限制,例如,当一个函数执行时间过长时,可能会导致程序卡顿、资源占用过高,因此,在某些情况下,... 目录前言func-timeout1. 安装 func-timeout2. 基本用法自定义进程subp

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

QT进行CSV文件初始化与读写操作

《QT进行CSV文件初始化与读写操作》这篇文章主要为大家详细介绍了在QT环境中如何进行CSV文件的初始化、写入和读取操作,本文为大家整理了相关的操作的多种方法,希望对大家有所帮助... 目录前言一、CSV文件初始化二、CSV写入三、CSV读取四、QT 逐行读取csv文件五、Qt如何将数据保存成CSV文件前言

Java字符串处理全解析(String、StringBuilder与StringBuffer)

《Java字符串处理全解析(String、StringBuilder与StringBuffer)》:本文主要介绍Java字符串处理全解析(String、StringBuilder与StringBu... 目录Java字符串处理全解析:String、StringBuilder与StringBuffer一、St

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT