SSIM実習 JPEG2000実習 特定レイヤーのSSIM測定バッチ編
本日は、上級者向けの応用編です。こちらの3つの内容は押えておいてくださいね。
JPEG2000実習 レイヤー編 http://d.hatena.ne.jp/denshikA/20100604
JPEG2000実習 各レイヤーのPSNR確認編 http://d.hatena.ne.jp/denshikA/20100614
SSIM実習 (フォルダ内一括計算) http://d.hatena.ne.jp/denshikA/20100705
すでに、SSIMの計算ツール(C++版)を、ソース付きで公開し、前回は、フォルダ単位で、一気にドビャーっと計算するSSIMの計算バッチを作ってみました。
あとは、ズバリ、JP2ファイルの特定レイヤーのSSIM測定にトライしてみるしかありませんね*1。
前回のSSIM計算拠点を使いましょう。
という感じですね。(意味が分からなければ、http://d.hatena.ne.jp/denshikA/20100705を見てください。)
とりあえず、「TIFF87フォルダ、SSIMtool.exe、result.txt」の3つはいりませんので、削除しちゃってください。
次に、3レイヤーで作成したJPEG2000のファイルを用意しておきましたので、こちら(JP2.zip )からダウンロードして、展開して、拠点(SSIMフォルダ)においてください。中には、特製JP2ファイルが13個入っています。
そして、今回は、「JP2ファイルの特定レイヤーのSSIM測定」ということですので、2ステップの作業となります。
- まず、JP2ファイルをレイヤーごとの画像に分解します
- 各レイヤー画像のSSIMを測定します
そんな2つのことをやってくれるバッチプログラムは、こんな感じですかね?
@echo off echo -------------------------------------------------------- echo JP2をレイヤー分解してから、SSIM検査しますよー Ver2.0 echo -------------------------------------------------------- PAUSE REM -------------------------------------------------------- REM 元の画像が入ったフォルダさん (TIFF画像) set ORIGINAL=TIFF REM 分解前のJP2が入ったフォルダさん (JP2画像) set JPEG2000=JP2 REM 比較する画像が入ったフォルダさん (TIFF画像) set DISTORTED1=LAYER1 set DISTORTED2=LAYER2 set DISTORTED3=LAYER3 REM MAP画像を入れるフォルダさん (PNG画像) set SSIMMAP=MAP REM -------------------------------------------------------- echo ----- こんにちは、これからフォルダ作るよ ----- mkdir %DISTORTED1%,%DISTORTED2%,%DISTORTED3% echo ----- ほらね、フォルダ作ったよ ----- PAUSE echo ----- 次は、JP2のレイヤー分解開始だよ ----- FOR %%B IN (%JPEG2000%/*.jp2) DO ( for /f "tokens=1 delims=." %%i in ("%%B") do ( echo %%Bのレイヤー1を分解中 C:\j2k_to_image.exe -i %JPEG2000%/%%B -o %DISTORTED1%/%%i.tif -l 1 echo %%Bのレイヤー2を分解中 C:\j2k_to_image.exe -i %JPEG2000%/%%B -o %DISTORTED2%/%%i.tif -l 2 echo %%Bのレイヤー3を分解中 C:\j2k_to_image.exe -i %JPEG2000%/%%B -o %DISTORTED3%/%%i.tif -l 3 ) ) echo ----- どうにか、JP2レイヤー分解できたよ ----- PAUSE echo ----- 最後に、SSIM検査開始だよ、もう一息! ----- FOR %%B IN (%ORIGINAL%/*.tif) DO ( for /f "tokens=1 delims=." %%i in ("%%B") do ( echo %%i: >> result1.txt SSIM.exe %ORIGINAL%/%%B %DISTORTED1%/%%i.tif %SSIMMAP%/%%i-1.png >> result1.txt echo %%i: >> result2.txt SSIM.exe %ORIGINAL%/%%B %DISTORTED2%/%%i.tif %SSIMMAP%/%%i-2.png >> result2.txt echo %%i: >> result3.txt SSIM.exe %ORIGINAL%/%%B %DISTORTED3%/%%i.tif %SSIMMAP%/%%i-3.png >> result3.txt echo %%i: done... ) ) echo ----- SSIM検査完了だよ ばいばーい!----- PAUSE
このプログラムをテキストファイルにコピペして、「SSIMtool2.bat」などと名づけて、先ほどのSSIMフォルダに入れてください。
さて、この「SSIMtool2.bat」を実行させるとどうなるのか?ぜひ、試してみてください。
追伸:noidonさん、tomomi_assistさん、その後、どんな調子ですか?
On 04/03/2010, at 5:58 PM, tomomi_assist wrote:
I would like to create jp2 files by specifying an uniform SSIM value to image files.
If you know the solution to deal with, please teach me the method.
http://tech.groups.yahoo.com/group/kakadu_jpeg2000/message/6052
*1:かなりマニアな領域になりますが