#!/bin/bash # 用于运行简化版图像相似度检测工具的脚本 # 确保脚本在出错时退出 set -e # 颜色定义 GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' # No Color # 打印带颜色的消息 print_green() { echo -e "${GREEN}$1${NC}" } print_yellow() { echo -e "${YELLOW}$1${NC}" } print_red() { echo -e "${RED}$1${NC}" } # 安装必要的Python依赖 install_dependencies() { print_yellow "安装必要的Python依赖..." pip install numpy opencv-python pillow matplotlib scikit-image scipy pandas imagehash print_green "依赖安装完成!" } # 检查测试图像目录 check_images_dir() { TEST_IMAGES_DIR="./scripts/image_test/test_images" mkdir -p "$TEST_IMAGES_DIR" # 检查测试图像目录中是否有图像文件 image_count=$(find "$TEST_IMAGES_DIR" -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.bmp" \) | wc -l) if [ "$image_count" -eq 0 ]; then print_red "错误: 测试图像目录 '$TEST_IMAGES_DIR' 中没有图像文件!" print_yellow "请在此目录中放置要检测相似度的图像文件后再运行此脚本。" print_yellow "您至少需要放置2个或更多图像文件进行比较。" exit 1 else print_green "找到 $image_count 个图像文件,可以进行检测。" fi } # 确保输出目录存在 prepare_output_dir() { print_yellow "准备输出目录..." OUTPUT_DIR="./scripts/image_test/results" mkdir -p "$OUTPUT_DIR" print_green "输出目录准备完成!" } # 运行检测脚本 run_check() { print_yellow "运行图像相似度检测..." TEST_IMAGES_DIR="./scripts/image_test/test_images" OUTPUT_DIR="./scripts/image_test/results" python ./scripts/image_test/simple_dupe_checker.py --input_dir "$TEST_IMAGES_DIR" --output_dir "$OUTPUT_DIR" print_green "检测完成!" print_yellow "结果保存在: $OUTPUT_DIR" } # 主函数 main() { print_green "===== 简化版图像相似度检测工具 =====" # 检查Python是否可用 if ! command -v python &> /dev/null; then print_red "错误: 未找到Python。请确保已安装Python 3.6+。" exit 1 fi # 安装依赖 install_dependencies # 检查测试图像目录 check_images_dir # 准备输出目录 prepare_output_dir # 运行检测 run_check print_green "===== 检测完毕 =====" } # 执行主函数 main