大量图片进行自适应处理

news2024/9/22 5:26:18

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

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")

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2096309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于UniApp+Springboot花店微信小程序

此花店小程序是多商家&#xff0c;多用户&#xff0c;以及后台管理员操作的花市集小程序系统&#xff0c;前端采用vue 和 UniApp&#xff0c;后端采用java Springboot 设计开发。前后端分离的花店微信小程序系统&#xff0c;数据库采用独立的数据库mysql 小程序端界面主要采用…

yolo数据集钢材表面缺陷v8下载适用yolov5等全版本已标注txt格式

钢材表面缺陷检测数据集介绍 数据集概述 本数据集专为钢材表面缺陷检测任务而设计&#xff0c;包含了大量的钢材表面图像&#xff0c;每张图像均带有详细的缺陷标注信息。数据集旨在帮助研究人员和开发人员训练高精度的目标检测模型&#xff0c;以应用于钢材制造和质量控制等多…

本地化云桌面系统环境VMware horizon搭建

前言&#xff1a;预准备使用空闲服务器&#xff0c;搭建轻办公云桌面环境&#xff0c;类似“华为云桌面FusionAccess”&#xff0c;或天翼云桌面系统。注意云桌面不是桌面云&#xff0c;云桌面的适用场景为团队化云上办公&#xff0c;可私有部署/云化部署。horizon是VMware旗下…

Linux 软硬连接

1. 硬链接 实际上并不是通过文件名来找到磁盘上的文件&#xff0c;而是通过inode。在linux中可以让多个文件名对应于同一个 inode&#xff0c;而这种方式就是建立硬链接。硬链接是文件系统中的一种链接类型&#xff0c;它创建了文件的一个额外的目录项&#xff0c;但不占用额外…

网工面试题(安全)

上一篇&#xff1a;网工面试题&#xff08;数通&#xff09; 防火墙 防火墙的应用场景 防火墙&#xff1a;部署在网络出口处/服务器区(数据中心&#xff09;/广域网接入&#xff0c;用于防止外界黑客攻击、保护内网安全硬件。 传统防火墙和下一代防火墙的区别 传统防火墙的功能…

访问win10共享文件夹:用户或密码不正确 以及 未授予用户在此计算机上的请求登录类型

因为安装的是神州网信政府版&#xff0c;该版本通常包含更严格的安全策略和访问控制&#xff0c;设置了共享文件夹后&#xff0c;访问共享文件夹时出现错误。 1、首先报错&#xff1a;用户或密码不正确 将》网络访问&#xff1a;本地账户的共享和安全模型&#xff0c;修改为&a…

C#上位机使用Microsoft.Office.Interop.Excel和EPPlus库对Excel或WPS表格进行读写操作

C#上位机使用Microsoft.Office.Interop.Excel和EPPlus库对Excel或WPS表格进行写操作 一、使用Microsoft.Office.Interop.Excel库 1、通过NuGet包管理器添加引用 按照下图中红框所示进行操作。 需要安装Microsoft.Office.Interop.Excel包 添加Microsoft Office 16.0 Object …

预训练语言模型的前世今生 - 从Word Embedding到BERT

目录 一、预训练 1.1 图像领域的预训练1.2 预训练的思想二、语言模型 2.1 统计语言模型2.2 神经网络语言模型三、词向量 3.1 独热&#xff08;Onehot&#xff09;编码3.2 Word Embedding四、Word2Vec 模型五、自然语言处理的预训练模型六、RNN 和 LSTM 6.1 RNN6.2 RNN 的梯度消…

Maven的相关配置和使用

Maven的配置&#xff1a; Maven的配置和Java差不多&#xff0c;从镜像站下载相关的Maven版本压缩包&#xff0c;然后解压到自己的D盘&#xff0c;在进行系统变量的配置&#xff0c;新建变量Maven_HOME&#xff0c;然后值设置为Maven的地址&#xff0c;一定是点开文件后就能出现…

【LLM】文生视频相关开源数据集(VidGen、Panda、Cogvideox等)

note 总结了VidGen数据集、Panda-70m数据集、Openvid数据集、OpenVid-1M数据集、Cogvideox训练数据准备过程、ShareGPT4Video数据集等在一篇综述中还总结了评估指标包括&#xff1a;峰值信噪比&#xff08;PSNR&#xff09;、结构相似性指数&#xff08;SSIM&#xff09;、Inc…

NLP从零开始------16.文本中阶处理之序列到序列模型(1)

1. 序列到序列模型简介 序列到序列( sequence to sequence, seq2seq) 是指输入和输出各为一个序列(如一句话) 的任务。本节将输入序列称作源序列&#xff0c;输出序列称作目标序列。序列到序列有非常多的重要应用&#xff0c; 其中最有名的是机器翻译( machine translation), 机…

Day-01—QT项目的新建

1.选择创建的项目类型&#xff0c;可以看到&#xff0c;这里可以创建多种语言的项目&#xff0c;可以直接用QT来进行前期C 的学习。 2.创建的名字中不要包含中文&#xff0c;可以用英文就用英文&#xff0c;如果不会英文&#xff0c;就用拼音也可以&#xff0c;保存地址中也不要…

aosp13自由窗口项目出现图库app划线不全bug修改-安卓framework实战项目

背景 在学习了马哥的分屏自由窗口pip专题后&#xff0c;进行了相关的自由窗口等比例放大操作&#xff0c;但是操作测试过程中学员朋友们有发现图库app进入自由窗口进行操作放大有红框显示不全的问题。 但是使用图库app时候发现红框居然显示不完整&#xff0c;具体效果如下图&a…

C语言基础(三十)

1、希尔排序&#xff1a; #include "date.h" #include <stdio.h> #include <stdlib.h> #include <time.h> // 希尔排序函数 void shellSort(int arr[], int n) { for (int gap n / 2; gap > 0; gap / 2) { // 对每个子列表进行插入排…

90分钟实现一门编程语言——极简解释器教程

关键字 解释器, C#, Scheme, 函数式编程 关于 本文介绍了如何使用C#实现一个简化但全功能的Scheme方言——iScheme及其解释器&#xff0c;通过从零开始逐步构建&#xff0c;展示了编程语言/解释器的工作原理。 作者 Lucida a.k.a Luc 如果你是通过移动设备阅读本教程&…

面向对象软件编程——OOP入门实践

工作一段时间了&#xff0c;工作内容趋向于算法模型的复现&#xff0c;就是复现论文算法然后结合业务逻辑开发软件。但是在设计和开发软件时&#xff0c;发现对于OOP理念和软件的设计原则等在实战中还是非常缺乏。于是开始补习&#xff0c;基础软件开发技术。 书籍&#xff1a;…

Arduino UNO 编程 第一期——下载及使用

字幕君已上线...... 副字幕君已上线...... 计数君已上线...... 彩色字幕君 ( 花了重金请来的 ) 已上线...... Doge智能系统已上线...... Doge:嗨嗨我又来了&#xff01; 观众们......已上线&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; OK LETS GO&am…

理解大模型中的Cursor技术:优化长文本推理的前沿方案

理解大模型中的Cursor技术&#xff1a;优化长文本推理的前沿方案 随着自然语言处理&#xff08;NLP&#xff09;领域的快速发展&#xff0c;大型语言模型&#xff08;如GPT系列&#xff09;已广泛应用于文本生成、对话系统和复杂推理任务。然而&#xff0c;随着文本长度的增加…

灾难性遗忘问题(Catastrophic Forgetting,CF)是什么?

灾难性遗忘问题&#xff08;Catastrophic Forgetting&#xff0c;CF&#xff09;是什么&#xff1f; 在深度学习和人工智能领域中&#xff0c;“灾难性遗忘”&#xff08;Catastrophic Forgetting&#xff09;是指当神经网络在增量学习&#xff08;Incremental Learning&#…

用AI生成旅游打卡照!FLUX假装去旅行lora的使用【附工作流】

hello&#xff01;今天我们来聊聊一个特别有意思的话题&#xff1a;如何用AI生成那些看起来像是去过世界各地的旅游打卡照&#xff0c;还能在朋友圈里炫耀一番。很多人看到这些照片都会问&#xff1a;“你真的去过这些地方吗&#xff1f;” 而且最主要的是这种图片做点自媒体旅…