97 lines
2.5 KiB
Bash
Executable File
97 lines
2.5 KiB
Bash
Executable File
#!/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 |