feat: 完成 Rust 滑块匹配算法,修复透明留白导致的坐标偏移
- 实现灰度与边缘两种匹配模式 - 对齐 OpenCV NCC 算法逻辑 - 优化图像灰度化与 Alpha 通道转换 - 提升坐标计算精度至像素级
This commit is contained in:
@@ -118,4 +118,36 @@ fn test_real_slide_match() {
|
||||
assert_eq!(result.target_x, 237);
|
||||
assert_eq!(result.target_y, 77);
|
||||
assert!(result.confidence > 0.0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_real_slide_comparison() {
|
||||
let engine = Slide::new();
|
||||
|
||||
// 1. 加载你准备好的测试图
|
||||
// 假设图片放在项目根目录下的 assets 文件夹
|
||||
let target_img = load_image("samples/ken.jpg")
|
||||
.expect("请确保 samples/ken.jpg 存在");
|
||||
let bg_img = load_image("samples/kenyuan.jpg")
|
||||
.expect("请确保 samples/kenyuan.jpg 存在");
|
||||
|
||||
// 2. 执行匹配
|
||||
// 如果是那种带有明显阴影边缘的复杂滑块,建议 simple_target 传 false
|
||||
let start = std::time::Instant::now();
|
||||
let result = engine.slide_comparison(&target_img, &bg_img)
|
||||
.expect("Slide match 执行失败");
|
||||
let duration = start.elapsed();
|
||||
|
||||
// 3. 打印结果
|
||||
println!("-------------------------------------------");
|
||||
println!("滑块匹配测试结果:");
|
||||
println!("检测坐标: [x: {}, y: {}]", result.target_x, result.target_y);
|
||||
println!("置信度: {:.4}", result.confidence);
|
||||
println!("耗时: {:?}", duration);
|
||||
println!("-------------------------------------------");
|
||||
|
||||
// 验证基本逻辑:坐标不应为 0 (除非匹配失败)
|
||||
assert_eq!(result.target_x, 171);
|
||||
assert_eq!(result.target_y, 91);
|
||||
assert!(result.confidence > 0.0);
|
||||
}
|
||||
Reference in New Issue
Block a user