python去除ai生成的视频水印代码

代码语言:python

所属分类:其他

代码描述:python去除ai生成的视频水印代码,可选择水印出现的时间和区域进行框选精准去除。

代码标签: python 去除 ai 生成 视频 水印 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

import os
import threading
import subprocess
import tkinter as tk
from tkinter import filedialog, messagebox, ttk
import cv2
from PIL import Image, ImageTk

class VideoSelectorWindow(tk.Toplevel):
    """
    自定义的弹窗:用于带比例缩放地预览视频、框选水印、选择时间段
    """
    def __init__(self, parent, video_path, callback):
        super().__init__(parent)
        self.title("选择水印区域与出现时间")
        self.geometry("1000x750")
        self.resizable(False, False)
        self.callback = callback
        
        self.cap = cv2.VideoCapture(video_path)
        if not self.cap.isOpened():
            messagebox.showerror("错误", "无法打开视频文件!")
            self.destroy()
            return

        # 获取视频基本信息
        self.total_frames = int(self.cap.get(cv2.CAP_PROP_FRAME_COUNT))
        self.fps = self.cap.get(cv2.CAP_PROP_FPS)
        self.orig_w = int(self.cap.get(cv2.CAP_PROP_FRAME_WIDTH))
        self.orig_h = int(self.cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
        
        if self.fps <= 0: self.fps = 25.0
        
        # 计算等比例缩放系数 (最大显示区域 900x550)
        max_disp_w, max_disp_h = 900, 550
        self.scale = min(max_disp_w / self.orig_w, max_disp_h / self.orig_h)
        self.disp_w = int(self.orig_w * self.scale)
        self.disp_h = int(self.orig_h * self.scale)

        # 状态变量
        self.current_frame_idx = 0
        self.start_frame = 0
        self.end_frame = self.total_frames - 1
        
        self.roi_disp = None  # 画布上的坐标 (x1, y1, x2, y2)
        self.rect_id = None
        self.start_x =.........完整代码请登录后点击上方下载按钮下载查看

网友评论0