にせねこメモ

はてなダイアリーがUTF-8じゃないので移ってきました。

画像処理

1次B-スプライン曲線の制御点列をそのまま利用して2次B-スプライン曲線で1次B-スプライン曲線を近似する

問題提起 1次B-スプライン曲線(linear B-spline curve)とはすなわち折れ線のことである。 これはシンプルで、隣り合う2制御点を順番に直線で結んでいけば求める曲線(というか折れ線)が描ける。一方で、2次B-スプライン曲線(quadratic B-spline curve)はB-ス…

アニメキャラの目のハイライト消しデータセット

次のブログ記事で利用したデータセットを公開します。 Chainerでアニメキャラの目からハイライトを消す - にせねこメモ 説明 アニメの顔の画像で、目にハイライトがあるもの(オリジナル)と、そこから目のハイライトを塗りつぶして消したものとのペアです。50…

Windows 10上のDarknetでYolo v3をトレーニングしOpenCVから使ってみる

DarknetはCで書かれたディープラーニングフレームワークである。物体検出のYOLOというネットワークの著者実装がDarknet上で行われている。 もともとはLinux等で動かすもののようだが、ありがたいことにWindowsでコンパイルできるようにしたフォークが存在し…

フォントのアウトラインを法線方向に太らせたり細らせたりしてみる

フォントのアウトラインの制御点を法線方向に沿って動かしたら文字の線をうまいこと太らせたり細らせたりできるのではないかと思ってやってみて、結果小さい移動量においてはそこそこになったように思う。 読まなくてもいい前書き 現在一般のコンピュータで…

Python+OpenCVでアニメのカット検出

はじめに 編集された映像のまとまりで一番細かい単位をカット(英語ではshot)という。カットがつなぎ合わされて一つの映像作品が作られている。 一般的にカットの切り替え時にはカメラの位置や撮影対象の位置関係が不連続になるため、画の大きな変化から目で…

Pillow, OpenCVなどでの画像の扱いの違い

Pythonには画像処理のために画像を読み書きするライブラリがあり、画像ファイルをnumpy.ndarrayの形で読み込んだりそれを表示・保存したりできるものがある。 一方で、各ライブラリによって画像の形式がまちまちであったりして、同じnumpy.ndarrayでも変換が…

デジカメで撮った文書をきれいに印刷する

文書をコピーしたいけれどコピー機が手元にない時など、デジカメで文書を撮影しておくということがある。 ただ、今度それを印刷しようと思った場合、そのまま印刷してもコピー機でコピーを取ったときの様にきれいに印刷することは難しい。ここでは、デジカメ…

Mac OS XでpyFaceTrackerをインストール

pyFaceTrackerを使いたかった。とりあえず、OpenCVバージョン2.4系へ対応してるらしい(2.4.9での動作報告あり。バージョン3系は不明)ので、2.4.12を利用してインストールしてみる。 環境 Mac OS X Yosemite (10.10.5) Python 2.7.11 インストール手順 OpenCV…

適当に書いてフォントを作る

以前、 mashabow さんが、紙に書いた手書きの文字から手書きフォントを自動で生成する、という試みをしていた。 てきとうに書いて作ったフォント - しろもじ作業室これが2008年のことである。当時この自動生成についての動画を見て感激した覚えがある。そし…

Python 3 でQRコードを読み書き

QRコードを読む バーコードをPythonから読めたらいいのでは、と思ったので。使ってるバージョンが Python 3 だったので結局は力技になってしまった。Python でバーコードを読むには ZBar を使うといいらしい。 Pythonで画像ファイルからQRコードを読み込む (…

Python 3 から Potrace を使う

Python 3.5 から Potrace を使い、ラスタ画像をベクタに変換したい。 より詳細に言うと、 OpenCV 3 の Python Bindings の cv2.imread() で読み込んだ画像データ(numpy.ndarray)をSVGデータに変換したかった。 pypotrace ってのもあるけど 3.5 で使えるのか…

コマンドラインでSVGのストロークをアウトライン化する

SVG ファイルに含まれるストロークをパスに変換(アウトライン化)することをコマンドラインから行い、自動化したかった。 Inkscape CLI そこで、フリーソフトウェアのドローツールである Inkscape を利用する。 GUI からはメニューの「パス」→「ストロークを…

マーカーを利用した傾き補正

印刷した紙に書き込み、それをスキャンすると、傾き等の歪みが発生する。この傾き等を補正するのを自動化したい。 今回は、そのために傾き補正用のマーカーを紙の四隅に事前に印刷しておき、スキャン画像に含まれるマーカーを元に傾き補正を行う。 次のよう…

ベジェ曲線を手で描いてみる

ベジェ曲線は、ベクタ形式の画像で曲線を表現するのに使われています。フォントのアウトラインもベジェ曲線の集まりです。ベジェ曲線で表現されるのは一つの曲線の区間だけです。大抵は複数のベジェ曲線が集まって一つの図形を表現します。ベジェ曲線には制…