12#ifndef YAZE_SRC_CLI_SERVICE_AGENT_TOOLS_VISUAL_ANALYSIS_TOOL_H_
13#define YAZE_SRC_CLI_SERVICE_AGENT_TOOLS_VISUAL_ANALYSIS_TOOL_H_
20#include "absl/status/status.h"
21#include "absl/status/statusor.h"
100 const std::vector<uint8_t>& tile_b)
const;
111 const std::vector<uint8_t>& tile_b)
const;
120 absl::StatusOr<std::vector<uint8_t>>
ExtractTile(
Rom* rom,
int sheet_index,
121 int tile_index)
const;
154 const std::vector<TileSimilarityMatch>& matches)
const;
160 const std::vector<UnusedRegion>& regions)
const;
166 const std::vector<PaletteUsageStats>& stats)
const;
172 const std::vector<TileUsageEntry>& entries)
const;
186 std::string
GetName()
const override {
return "visual-find-similar-tiles"; }
189 return "Find tiles with similar patterns to a reference tile";
193 return "visual-find-similar-tiles --tile_id <id> [--sheet <index>] "
194 "[--threshold <0-100>] [--method <pixel|structural>]";
217 std::string
GetName()
const override {
return "visual-analyze-spritesheet"; }
220 return "Identify unused regions in graphics sheets for ROM hacking";
224 return "visual-analyze-spritesheet [--sheet <index>] [--tile_size <8|16>] "
225 "[--format <json|text>]";
241 int tile_size)
const;
247 const std::vector<UnusedRegion>& regions)
const;
261 std::string
GetName()
const override {
return "visual-palette-usage"; }
264 return "Analyze palette usage statistics across maps";
268 return "visual-palette-usage [--type <overworld|dungeon|all>] "
269 "[--format <json|text>]";
303 std::string
GetName()
const override {
return "visual-tile-histogram"; }
306 return "Generate frequency histogram of tile usage across maps";
310 return "visual-tile-histogram [--type <overworld|dungeon>] [--top <n>] "
311 "[--format <json|text>]";
334#ifdef YAZE_WITH_OPENCV
350std::pair<std::pair<int, int>,
double> TemplateMatch(
351 const std::vector<uint8_t>& reference,
352 const std::vector<uint8_t>& search_region,
int width,
int height,
361double FeatureMatch(
const std::vector<uint8_t>& tile_a,
362 const std::vector<uint8_t>& tile_b);
370double ComputeSSIM(
const std::vector<uint8_t>& tile_a,
371 const std::vector<uint8_t>& tile_b);
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Utility for parsing common CLI argument patterns.
Base class for CLI command handlers.
Tile usage frequency entry.
std::vector< int > locations