大量图片进行自适应处理

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

相关文章

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

linux解压缩 xxx.jar文件进行内部操作过程

《linux解压缩xxx.jar文件进行内部操作过程》:本文主要介绍linux解压缩xxx.jar文件进行内部操作,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、解压文件二、压缩文件总结一、解压文件1、把 xxx.jar 文件放在服务器上,并进入当前目录#

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,