+ All Categories
Home > Documents > Photoshop+AI+JSPhotoshopのJSで処理 PhotoshopはJavaScriptが使えるので、AIで...

Photoshop+AI+JSPhotoshopのJSで処理 PhotoshopはJavaScriptが使えるので、AIで...

Date post: 25-Jul-2020
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
11
Photoshop+AI+JS Photoshop で自動的に認識された 矩形を描画する
Transcript
Page 1: Photoshop+AI+JSPhotoshopのJSで処理 PhotoshopはJavaScriptが使えるので、AIで 検索(画像認識)させた後に生成されたテキスト ファイル(JSON)データを読み込んでパスや

Photoshop+AI+JSPhotoshop で自動的に認識された

矩形を描画する

Page 2: Photoshop+AI+JSPhotoshopのJSで処理 PhotoshopはJavaScriptが使えるので、AIで 検索(画像認識)させた後に生成されたテキスト ファイル(JSON)データを読み込んでパスや

ようするに、こういう事です

認識場所を四角形で表示

Page 3: Photoshop+AI+JSPhotoshopのJSで処理 PhotoshopはJavaScriptが使えるので、AIで 検索(画像認識)させた後に生成されたテキスト ファイル(JSON)データを読み込んでパスや

Clound Vision API で変換しPhotoshop の JS で処理

Photoshop は JavaScript が使えるので、AI で検索(画像認識)させた後に生成されたテキストファイル(JSON)データを読み込んでパスや選択範囲で描画すればOK

Page 4: Photoshop+AI+JSPhotoshopのJSで処理 PhotoshopはJavaScriptが使えるので、AIで 検索(画像認識)させた後に生成されたテキスト ファイル(JSON)データを読み込んでパスや

変換したファイル (JSON)60 日間無料の時に何でもかんでも AI 検索させてローカルに保存しておく・・・とよいかも。

Page 5: Photoshop+AI+JSPhotoshopのJSで処理 PhotoshopはJavaScriptが使えるので、AIで 検索(画像認識)させた後に生成されたテキスト ファイル(JSON)データを読み込んでパスや

座標データ座標データは boundingPoly(複数ある)のvertices 配列に入っています。 "landmarkAnnotations": [ { "mid": "/m/039qq6", "description": "Matsumoto Castle", "score": 0.8468172, "boundingPoly": { "vertices": [ { "x": 120, "y": 29 }, { "x": 269, "y": 29 },

{ "x": 269, "y": 172 }, { "x": 120, "y": 172 } ] },

Page 6: Photoshop+AI+JSPhotoshopのJSで処理 PhotoshopはJavaScriptが使えるので、AIで 検索(画像認識)させた後に生成されたテキスト ファイル(JSON)データを読み込んでパスや

JSONデータを読み込んで処理 var jsondata = fileList[i].read(); eval("var data = "+jsondata); var param = data.responses[0].landmarkAnnotations; if (!param){ continue; } for(var j=0; j<param.length; j++){  ~省略~ for(var k=0; k<coords.length; k++){ var x = coords[k].x; var y = coords[k].y;

Page 7: Photoshop+AI+JSPhotoshopのJSで処理 PhotoshopはJavaScriptが使えるので、AIで 検索(画像認識)させた後に生成されたテキスト ファイル(JSON)データを読み込んでパスや

Photoshop で実行フォルダを選択すると複数の画像をまとめて処理してくれます。

Page 8: Photoshop+AI+JSPhotoshopのJSで処理 PhotoshopはJavaScriptが使えるので、AIで 検索(画像認識)させた後に生成されたテキスト ファイル(JSON)データを読み込んでパスや

// Photoshop で自動的に対象矩形を生成する(function(){ var folderObj = Folder.selectDialog(" フォルダを選択してください "); if (!folderObj){ return; } var apiText = "*.LANDMARK.txt"; var fileList = folderObj.getFiles(apiText); for(var i=0; i<fileList.length; i++){ var f = fileList[i].open("r"); if (!f){ continue; } var jsondata = fileList[i].read(); eval("var data = "+jsondata); var param = data.responses[0].landmarkAnnotations; if (!param){ continue; } for(var j=0; j<param.length; j++){ if (!param[j].boundingPoly){ continue; } var imageFile = fileList[i].fsName.split(".LANDMARK.txt")[0]; app.open(new File(imageFile)); // レイヤーを作成する var doc = app.activeDocument; var lay = doc.artLayers.add(); lay.name = param[j].description; var coords = param[j].boundingPoly.vertices; var myPath = []; var p = []; for(var k=0; k<coords.length; k++){ var x = coords[k].x; var y = coords[k].y; $.writeln(coords[k].x+","+coords[k].y); p.push(pathXY(x,y)); } myPath[0] = new SubPathInfo(); // サブパスを生成 myPath[0].operation = ShapeOperation.SHAPEADD; // 現在のパスに追加

myPath[0].closed = true; // クローズパス myPath[0].entireSubPath = p; // パス座標データ app.activeDocument.pathItems.add(param[j].description, myPath); } }})();// 直線のパスポイント座標を設定する関数function pathXY(x, y){ var pObj = new PathPointInfo(); // パス情報オブジェクトを作成 pObj.kind = PointKind.CORNERPOINT; pObj.anchor = [x, y]; // アンカー座標 pObj.leftDirection = [x, y]; // 左ハンドル部分のパス座標 pObj.rightDirection = [x, y]; // 右ハンドル部分のパス座標 return pObj;}

Photoshop+JS のコード

Page 9: Photoshop+AI+JSPhotoshopのJSで処理 PhotoshopはJavaScriptが使えるので、AIで 検索(画像認識)させた後に生成されたテキスト ファイル(JSON)データを読み込んでパスや

顔認識の処理も可能

アイドルでGoogle 検索しで出た結果を処理した

顔の場合は顔の部品ごとにデータが提供されるので、より詳しい表示もできます。ただし、写真のように複数人の場合はmax で指定した人数までになります。(右はmax:5 の場合)

Page 10: Photoshop+AI+JSPhotoshopのJSで処理 PhotoshopはJavaScriptが使えるので、AIで 検索(画像認識)させた後に生成されたテキスト ファイル(JSON)データを読み込んでパスや

// Photoshop で自動的に対象矩形を生成する (FACE)var saveUnit = preferences.rulerUnits;var color = new SolidColor();color.rgb.red = 255;color.rgb.green = 0;color.rgb.blue = 0;(function(){ preferences.rulerUnits = Units.PIXELS; var folderObj = Folder.selectDialog(" フォルダを選択してください "); if (!folderObj){ return; } var apiText = "*.FACE.txt"; var fileList = folderObj.getFiles(apiText); for(var i=0; i<fileList.length; i++){ var f = fileList[i].open("r"); if (!f){ continue; } var jsondata = fileList[i].read(); eval("var data = "+jsondata); var param = data.responses[0].faceAnnotations; if (!param){ continue; } for(var j=0; j<param.length; j++){ if (!param[j].boundingPoly){ continue; } var imageFile = fileList[i].fsName.split(".FACE.txt")[0]; app.open(new File(imageFile)); // レイヤーを作成する var doc = app.activeDocument; var lay = doc.artLayers.add(); var coords = param[j].boundingPoly.vertices; var p = []; for(var k=0; k<coords.length; k++){ var x = coords[k].x || 0; var y = coords[k].y || 0; $.writeln(coords[k].x+","+coords[k].y);

p.push([x,y]); } $.writeln("-----"); doc.selection.select(p, SelectionType.REPLACE); doc.selection.stroke(color, 4,StrokeLocation.CENTER); doc.selection.deselect(); } }})();preferences.rulerUnits = saveUnit;

Photoshop+JS のコード

Page 11: Photoshop+AI+JSPhotoshopのJSで処理 PhotoshopはJavaScriptが使えるので、AIで 検索(画像認識)させた後に生成されたテキスト ファイル(JSON)データを読み込んでパスや

終わり


Recommended