From 4d9a2b9fedcf208b9872c4a6308d7c638da5a295 Mon Sep 17 00:00:00 2001 From: AbyssYuan0 Date: Tue, 16 Jan 2024 15:17:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=98=88=E5=80=BC=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __init__.py | 11 +++++++++-- videoCut.py | 6 +++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/__init__.py b/__init__.py index c29fe56..252bd76 100644 --- a/__init__.py +++ b/__init__.py @@ -479,6 +479,13 @@ class VideoCutFromDir: return { "required": { "frame_dir": ("STRING", {"default": None}), + "threshold": ("FLOAT", { + "default": 0.5, + "min": 0.01, + "max": 1.0, + "step": 0.01, + "display": "number" + }), "min_frame": ("INT", { "default": 16, "min": 1, @@ -501,8 +508,8 @@ class VideoCutFromDir: CATEGORY = "badger" - def video_cut_from_dir(self, frame_dir, min_frame, max_frame): - cutList = getCutList(frame_dir, min_frame, max_frame) + def video_cut_from_dir(self, frame_dir,threshold, min_frame, max_frame): + cutList = getCutList(frame_dir,threshold, min_frame, max_frame) dirPathString = cutToDir(frame_dir, cutList) return (dirPathString,) diff --git a/videoCut.py b/videoCut.py index 8319421..13769e5 100644 --- a/videoCut.py +++ b/videoCut.py @@ -39,7 +39,7 @@ def calculate_image_similarity(img_path1, img_path2): return combined_score -def getCutList(imagePath, min_frame, max_frame): +def getCutList(imagePath, threshold, min_frame, max_frame): pngList = os.listdir(imagePath) cutList = [] indexList = [] @@ -51,13 +51,13 @@ def getCutList(imagePath, min_frame, max_frame): imgPath0 = os.path.join(imagePath, pngList[i]) imgPath1 = os.path.join(imagePath, pngList[i + 1]) similarity = calculate_image_similarity(imgPath0, imgPath1) - print("切割画面(" + str(i + 1) + "/" + str(len(pngList) - 1) +") 相似度:"+ str(similarity)) + print("切割画面(" + str(i + 1) + "/" + str(len(pngList) - 1) + ") 相似度:" + str(similarity)) indexList.append(i) resList.append(similarity) i += 1 i = min_frame - 1 - threshold = sum(resList)/len(resList) + threshold = (sum(resList) / len(resList)) * threshold while i < len(pngList) - 1: if num >= max_frame: num = 0