Archive for the 'Photoshop CS2' Category

2009/06/02 Photoshop Elementsでオープン中の画像のヒストグラムを取得する

Photoshop Elements(Photoshop CS1〜CS3も可)で、オープン中の画像のヒストグラムを取得するAppleScriptです。

photo1.jpg

こんな画像をオープンしているときのヒストグラムは……

photo2.jpg

のような状態になっており、その256段階の数値をAppleScriptから取得できます。

2つの画像を「差の絶対値」で差分検出した後に、ヒストグラムを数値で取得できれば「どの程度違う部分があるのか」を検出できます。「差の絶対値」で演算すると、2枚の画像の同じ部分は黒く、そうでない部分は他の色になるため……「黒くない」部分の分布状況をヒストグラムから取得すれば、どの程度違うのかを数値で表現可能になります。AppleScriptで画像処理を行う上で非常に重要な技術です。

なお、ヒストグラムは本Scriptのように画像から直接取得できるほか、チャンネル(channel)ごとにも取得できるようになっています。「赤の色成分が多い画像の場合には○○の処理をする」とか「ヒストグラムが暗い方に偏っているので明るくする」といった処理もできそうです。

スクリプト名:Photoshop Elementsでオープン中の画像のヒストグラムを取得する
tell application Adobe Photoshop Elements
  tell document 1
    set c to count every channel
    
set histList to histogram
  end tell
end tell

histList
> {0, 0, 0, 0, 0, 1, 3, 27, 91, 264, 425, 724, 888, 819, 604, 585, 474, 422, 467, 486, 478, 464, 472, 524, 483, 473, 460, 438, 441, 378, 384, 298, 256, 229, 200, 164, 148, 134, 137, 129, 113, 122, 111, 109, 116, 109, 131, 112, 134, 115, 95, 108, 115, 120, 135, 113, 124, 107, 123, 115, 128, 107, 153, 128, 113, 148, 129, 136, 135, 152, 146, 126, 144, 163, 173, 164, 152, 172, 181, 161, 176, 175, 179, 203, 203, 191, 226, 201, 234, 214, 240, 240, 206, 223, 248, 260, 263, 278, 250, 273, 281, 283, 302, 304, 295, 285, 238, 280, 277, 268, 301, 314, 334, 366, 369, 398, 414, 471, 501, 571, 595, 643, 704, 629, 624, 627, 620, 564, 661, 689, 765, 789, 862, 848, 878, 990, 988, 1037, 1127, 1230, 1354, 1474, 1752, 1973, 1806, 1288, 760, 579, 613, 629, 743, 756, 756, 771, 805, 902, 958, 993, 925, 922, 911, 1000, 1243, 1300, 1405, 1386, 1423, 1217, 662, 418, 239, 148, 122, 116, 115, 119, 94, 90, 89, 79, 69, 81, 57, 81, 43, 61, 47, 65, 48, 44, 46, 40, 40, 55, 39, 44, 34, 41, 44, 56, 45, 33, 33, 33, 40, 28, 28, 30, 23, 27, 20, 22, 14, 15, 9, 7, 8, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

2009/05/28 Photoshop Elements 6のAS辞書はPhotoshop CS3と同じ

Photoshop Elements 6を買ってきて、AppleScript用語辞書を調べたところ……Photoshop CS3とまったく同じでした。Elementsにはアクション記録/実行用のインタフェース(メニューやパレット)はないものの、「do action」命令も存在している状態です。

do action v : play an action from the Actions Palette
do action text : the name of the action to play (note that the case of letters in the Action name is important and must match the case of the name in the Actions palette)
from text : the name of the action set containing the action being played (note that the case of letters in the Action Set name is important and must match the case of the name in the Actions palette)

ただ、そうはいってもアクションを指定しようがないので、実行はできないはずです。

Photoshop Elements 6用のScriptは、tellブロックのアプリケーション名をPhotoshop CS3に変更すれば、ほとんどの場合そのまま動きます。