<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> 
<dfn>画像処理</dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">画像</anchor>に対して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">演算</anchor>するものです。</p><figure class="short list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">画像処理</anchor></figcaption><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ImageMagick</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GD</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Photoshop</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SNOW</anchor></li><li><code>filter</code></li><li><code>canvas</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OCR</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">画像変換</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モルフォロジー変換</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">細線化</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直線検出</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コーナー検出</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書画像処理</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字認識</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">色</anchor></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサーバー</anchor>での<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">画像処理</anchor>には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ImageMagick</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GD</anchor> などの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ソフトウェア</anchor>を組み込んで呼び出すのが定石とされてきました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> しかしより低レベルな<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ライブラリー</anchor>を色々インストールしないといけないとか、
入力次第で動作が不安定になるとか、
各言語バインディングのインストールに癖があって面倒くさいとか、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> がソフトウェアや言語・ライブラリーによってばらばらだとか、
バージョンで挙動がころころ変わるとか、
色々と開発や運用が面倒な要素ばかりでした。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> ところで最近は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>で <code class="HTMLe" xml:lang="en">canvas</code> その他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">画像処理</anchor>用の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> が整備されてきています。簡単な処理は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント側</anchor>で済ませることもできるようになりました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> それでもどうしても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー側</anchor>でやりたい処理も残りますが、それも
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>に任せてしまうというのも1つの手かもしれません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサーバー</anchor>内部で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>を動作させて、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebDriver</anchor> から <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> で処理させて結果を得ることができます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Docker</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コンテナ</anchor>として動作させることにすれば、
インストール・デプロイの処理は <code>docker pull</code> だけで済みますし、
スケールや動作が不安定になったときの措置も、既存のコンテナ管理・監視技術を流用できます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> そういう目的のやつ、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WDIP</anchor> ってのがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <cite xml:lang="en">esimov/caire: Content aware image resize library</cite>
(<time>2018-02-06 12:36:01 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/esimov/caire">https://github.com/esimov/caire</anchor-external></p></body></html>