JavaScriptで画像のクラスタリングによるドット絵風加工

前回のJavaScriptでPoisson Image Editingによる滑らかな画像合成に引き続き、HTML5 Canvasを使ったJavaScriptによる画像処理の一例を紹介します。 今回は画像の画素値に対するクラスタリング(分類)を画像加工用途に応用します。クラスタリングには各画素のRGB値を特徴ベクトル(次元数3)としてk-means法と呼ばれる手法を使って行います(実装上はk-means法の初期値選択アルゴリズムを改良したk-means++法を利用)。以下のサイトでOpenCVを利…

JavaScriptでPoisson Image Editingによる滑らかな画像合成

Poisson Image Editing はSIGGRAPH 2003で発表された画像合成手法の1つで、Poisson方程式の境界値問題を画像処理に応用しています。 ただ画像の一部を切り取って貼り付けるだけだと特に領域境界部分の継ぎ目が目立ってしまいますが(左画像)、Poisson Image Editingを用いると領域周辺の画素値から領域内側の画素値を推定して滑らかに合成することができます(右画像)。 僕が学生時代、VC++でこの手法を使った画像合成ソフトをゼミ仲間といっしょに作って遊んで…

Redisの監視/分析系ツールまとめ

Redis関連の監視/データ分析系ツールについてメモしておきます。 随時追記予定。実務で有用なツールが他にありましたら教えていただけると嬉しいです。 環境 CentOS 5.9, Ubuntu 12.04 (x86_64) Redis 2.6.10 (※ CentOSの6.x系への移行は足踏み状態。相当大変ですよね。。) 以下の順に紹介していきます。 Redisコマンド Redis Sentinel Redis Live Redis Faina Redis Sampler redis-top N…

memcachedが10歳の誕生日を迎えました

そりゃ僕もおっさんになるわけだ。 Gimme the cache! memcached turns 10 years old Twitterではお祝いのメッセージで溢れています。 memcached作者のBrad Fitzpatrickさんがお誕生日パーティーやろうぜって言ってます。 set party 0 0 33 memcached 10-year birthday party! (タイトルがmemcachedプロトコルになってる) Redis作者のSalvatoreさん(@antirez)…

RedisのLuaスクリプティング機能について

僕のRedisについての知識はv2.2くらいで止まっていたので、それ以降のRedisに備わった機能を調べているんですけど、その中でもv2.6からサポートされたLuaスクリプト実行環境について今回は整理します。 技術Wikiの方にもRedisについてのメモを残しています。 * Redis – Tech Note 環境 CentOS 5.8 (x86_64) Redis 2.6.10 (malloc=jemalloc-3.2.0 bits=64) Pythonクライアント (redis-…

ScalaでOpenCVを使って画像処理

OpenCV 2.4.4から正式にJava APIをAndroidプラットフォーム以外でも使えるようになりました。つまりJVM(Java Virtual Machine)上で動く言語ならどんな言語からでもOpenCVが使えるということですね。 * OpenCV now supports desktop Java 、ということで今回はJVM上で動作するScalaからOpenCVを使ってみます。 環境 * CentOS 5.8 (x86_64, 仮想2コア, 1GB RAM) * Scala 2.1…

OpenCV for Android入門 – カメラ編

ここ最近はAndroidアプリ開発の勉強をしています。今回はOpenCVでデバイスのカメラを利用した動画像処理を試してみました。 技術Wikiの方にもAndroid関連のメモを残しています。 * Android – Tech Note * OpenCV for Android – Tech Note Portions of this page are modifications based on work created and shared by Google and …

NginxとFFmpegを利用したHTTP Live Streaming配信

HTTP Live Streaming(HLS)配信の基本的な手順をまとめます。 去年の記事 「NginxのHTTP Pseudo-Streamingを試す」 ではNginxの疑似ストリーミング配信モジュールを試してみましたが、機能不足のため実サービスで使うのは難しいです。そのためWebサーバでストリーミング配信を行いたい場合は今回紹介するHLSなどの利用が推奨されます。 HTTP Live Streaming(HLS)とは Apple公式のドキュメントを読む方が理解は進むと思いますが、一応ここ…