しかもTruecolorだと、meanの値が使っている色によって偏ってしまうことも判明。
という事で、-compose differenceした画像をグレースケールに変換してから-identify -verboseを取得するようにしたらどうかと思い修正。
@echo off title %~n0 set WORK_AREA=%~dp0 set MAYA_BIN=C:\Program Files\Autodesk\MayaLT2016\bin\ :: 比較する画像 set IMG_A=%1 set IMG_B=%2 :: 存在確認 if ""=="%IMG_A%" echo IMG_A is blank. & pause & exit /b if ""=="%IMG_B%" echo IMG_B is blank. & pause & exit /b if not exist "%IMG_A%" echo %IMG_A% not found. & pause & exit /b if not exist "%IMG_B%" echo %IMG_B% not found. & pause & exit /b :: imconvertの作業エリア作成 set IMCNV_TMP=%WORK_AREA%_tmp if not exist "%IMCNV_TMP%" md "%IMCNV_TMP%" :: 差分画像のファイル名 set OUT_IMG=%IMCNV_TMP%\out.png :: ログファイル名 set VRBS_FILE=%IMCNV_TMP%\verbose set MEAN_FILE=%IMCNV_TMP%\mean :: imconvert実行 "%MAYA_BIN%imconvert.exe" -composite -compose difference "%IMG_A%" "%IMG_B%" "%OUT_IMG%" "%MAYA_BIN%imconvert.exe" -depth 8 -type Grayscale "%OUT_IMG%" "%OUT_IMG%" "%MAYA_BIN%imconvert.exe" -identify -verbose "%OUT_IMG%" "%OUT_IMG%">%VRBS_FILE% :: 結果解析 find "mean:" %VRBS_FILE% | find "mean:">%MEAN_FILE% set RESULT_MEAN= for /F "tokens=1-3" %%A in (%MEAN_FILE%) do set RESULT_MEAN=%%B :: 結果表示 echo %RESULT_MEAN% pause
前のよりもソレっぽい値が出てきた!
0 件のコメント:
コメントを投稿