Posts Tagged ‘GIMP’

GIMPからcvInpaint処理(Python経由で)~画像の小キズ隠しに~

土曜日, 11 月 1st, 2008


OpenCVのinpaint関数をGIMPから(Python経由で)使えるようにしてみました。

処理結果はこちらのサンプルみたいな感じ。

あまり大げさなことは出来ませんが、小さいノイズを消したりするのに便利なので、個人的に手放せません。

以下コード

(more…)

Tags: , ,

GIMP+Python オプティカルフローであそぶ その2 CVtypes編

土曜日, 3 月 22nd, 2008


GIMP2.4用のプラグインとして動かしてみました。
できたところまでメモ。
二つのレイヤーに ピーマンを少し動かした状態で描く。

http://boxheadroom.com/wp/wp-content/uploads/2008/03/p1.jpg
http://boxheadroom.com/wp/wp-content/uploads/2008/03/p2.jpg

マウス右ボタン -> フィルター ->Python ー>ofblur5
こんなダイアログが表示されます。
http://boxheadroom.com/wp/wp-content/uploads/2008/03/d.jpg

と、動きの大きい部分(動きの絶対値)が選択されます。
http://boxheadroom.com/wp/wp-content/uploads/2008/03/select.jpg

(直後は画面に反映されてません。画像左下のクイックマスクボタンで切り替えすると反映されます)
http://boxheadroom.com/wp/wp-content/uploads/2008/03/select2.jpg
(左下、小さい赤い四角が見えてる場所)

ここまで。
欲しかった結果と違うなぁ~ と、最初はガッカリしたんですが、いろんなサンプル画像で遊んでみたら 使い方によっては面白いかも。

ところで、GIMPには、ピーマンのブラシが標準装備されていて、今回のサンプル画像はそれを使ってるのですが。。。なぜマスコットキャラクターではなく、ピーマン?
(こんなときは便利ですが。)

以下は作業メモ+プラグインのソースコード。

(more…)

Tags: , , ,

GIMPで顔認識(Python経由でOpenCV)

木曜日, 12 月 20th, 2007

こちらの記事の続き。

ほとんど、GIMPとOpenCVのサンプルコードのひきうつしですが。。。

あらかじめ、CVtypes.pyに、前述の記事のパッチをあてておく必要があります。

OpenCVサンプルコード内 haarcascadesフォルダを中身のxmlファイルごとGIMPプラグインフォルダにコピー。
以下のコードをcvfacedetect.pyという名前で、GIMPプラグインフォルダ(GIMP24libgimp2.0plug-ins)に保存、GIMP次回起動時に認識される、はずです。

認識されていれば、GIMPで画像を開き、フィルターの中にOpenCVという階層が出来ます。その中のcvfacedetectを選ぶと、フィルタを実行します。

人物の顔が丸く選択されたら成功です。
実行自体は短いのですが、起動までに「か~な~り~」時間がかかるので実用性には欠けます。あくまでOpenCVを使ってみるサンプルコード、ということで。

卒業アルバムなど集合写真でやってみると、意外に引っかからない人が居たりして楽しかったり(汗
(more…)

Tags: , ,

「CVtypes.py」OpenCVをctypes経由で使う

水曜日, 12 月 19th, 2007


自分が忘れた時のために、作業メモ

GIMP2.4 win32版のプラグインをPythonで書く インストール編の続きです。

OpenCVをインストール:

インストーラ版の場合
  • インストーラはOpenCV_1.0.exe
  • DLLをGIMPバイナリーのフォルダにコピー
  • GIMP-Pythonから呼び出す時の都合で、C:Program FilesOpenCVbin 以下のDLLファイルをgimp24.exeと同じフォルダにコピーします。
  • もっと良い方法が有ると思いますが。。。
ZIP版の場合
  • GIMPから使うだけなら、chopencv-2.5.0-win-binary.zip内のDLLをGIMP24.exeと同じフォルダにコピーするだけ。
  • これだけだと、他のPythonプログラムからはOpenCVが使えないかと思います。

CVtypes

Sourceforgeからダウンロードできます
アーカイブ中のCVtypes.pyを、

Pythonをインストールしたフォルダ/Lib/site-packages

にコピーします。

パッチ

このままだと使いづらいので、私は以下のパッチをあてています。
CVtypes.pyの適当な行に以下を追加

cvInpaint =cfunc('cvInpaint', _cvDLL, None,
   ('src', c_void_p, 1), # const CvArr* src
   ('mask', c_void_p, 1), # CvArr* dst
   ('dst', c_void_p, 1), # CvArr* dst
   ('flags', c_int, 1), # int flags
   ('inpaintRadius', c_double, 1), # double threshold1
)
def cvImageAsString(img):
   btype = ctypes.c_char * img[0].imageSize
   return btype.from_address(img[0].imageData)

使い方

http://OpenCV.jp などとの違い。
使うには、

from CVtypes import cv

OpenCVのCVCreateImage(~)などの関数名は

cv.CreateImage

と、cvピリオドが頭に付く形に。定数なども同様に。
具体的なサンプルコードは、次の記事で。

Tags: , ,

無料で読めるCG関連の本(でも英語)他

月曜日, 12 月 17th, 2007


たとえ日本語で書かれてても、読むの大変そう。


Blender 3D: Noob to Pro

wikibooksのBlenderチュートリアル。

GIMP SAVVY

オンラインで読めるGIMPの本。英語だけど。

Tufts Open Courseware (of Tufts University)BlenderNewbies

大学のBlenderの授業の教材


Wiiリモコンでなんでもホワイトボードに変える魔法のような動画


Blender Open Material Repository

Makehuman 0.9.1 RC1 is ready!!

サイコロの作り方

Mapzone

Mapzone Tutorials

テクスチャ生成ソフト。無料、らしい。


24 Sweet Brushes for GIMP and Photoshop

GIMP 白黒写真の一部だけ彩色

レイヤーマスクを使って。

Tags: ,