画像処理ソリューション
これを見れば画像処理の入門から基礎~応用まで全てがわかるのを目指して!
   
翻訳(Translate)

プロフィール

Akira

ニックネーム:Akira
東京都の町田事業所に勤務
画像処理ソフトの開発を行っています。リンクフリーです!
詳細プロフィールは こちら
お問い合わせは、こちら↓

【補助HP】
画像処理ソリューションWeb版 【Newブログ】
イメージングソリューション

スポンサーリンク


カテゴリ

最近のコメント

カレンダー

03 | 2017/04 | 05
S M T W T F S
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -

趣味のブログ

iPhone萬歳!
iPhoneの情報いろいろ。
ブログ学習帳
ブログ、SEO、アフィリエイト情報など(まだまだこれから)
俺流クラフト日記
ハンドメイド作品の記録(現在、放置中)

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

【OpenCV】マスク処理

メインページOpenCV

OpenCVの画像間演算などの、例えばcvAddcvCopycvAndなどの関数の引数の最後にmaskという引数があります。
このマスクに何も指定しなければ、それぞれの関数では画像全体を処理するのですが、maskに入力画像、出力画像と同じ大きさの8ビット1チャンネルの画像を指定する事で、mask画像のうち、輝度値(画素値)が0以外部分のみを処理することが可能となります。
逆に言うと、輝度値が0の部分は何の処理もされないので、処理後の画像は、あらかじめ輝度値を0にするなり、背景画像を入れておくなりの初期化をしておいて下さい。
通常はmask画像には二値化された画像(輝度値が0と255)を指定します。

処理的にはcvSetImageROIで領域を指定して部分的に処理をするのに似ていますが、このmaskを用いる事で矩形以外の任意形状を指定することが可能となります。
ただし、入力画像出力画像mask画像の全ての画像の大きさ(widthとheight)が同じである必要があるので注意して下さい。

と、この機能を応用してクロマキーのような処理を行ってみました。

コピー元画像コピー先画像
コピー元画像
(Monalisa.bmp)
コピー先画像
(BackGround.bmp)

マスク画像
マスク画像
(Mask.bmp)

上記のような画像を用いて、以下のプログラムを実行しました。

//マスク処理(合成画像作成例)

//モナリザの画像

IplImage* src = cvLoadImage("Monalisa.bmp", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
//背景画像
 IplImage* dst = cvLoadImage("BackGround.bmp", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
//マスク画像(8ビット1チャンネルで読込)
IplImage* mask = cvLoadImage("Mask.bmp", CV_LOAD_IMAGE_GRAYSCALE);

//マスクの位置のみsrcからdstへコピーする
cvCopy(src, dst, mask);

//合成画像の表示
cvNamedWindow ("composite image", CV_WINDOW_AUTOSIZE);
cvShowImage ("composite image", dst);

//キー入力まち
cvWaitKey (0);

//解放
cvDestroyWindow ("composite image");
cvReleaseImage(&src);
cvReleaseImage(&dst);
cvReleaseImage(&mask);

そしてこちらが合成画像↓。 面白い!

画像合成処理

ちなみに、今回、マスク画像は手書きで作成しています。
 

Loading...
スポンサーリンク

この記事に対するコメント

この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://imagingsolution.blog107.fc2.com/tb.php/246-5a63fb71
この記事にトラックバックする(FC2ブログユーザー)

[today]Aug, 21, Sat. 明日は休み。。

IT インテルがマカフィーを買収。モバイルデバイス戦略強化の柱にセキュリティを位置づけるのが目的か@Publickey ゲームプログラミングもできる、やさしい開発環境「プログラミン」、文部科学省が公開@Publickey 早速つくった人がいたのでやってみました。意味不明。 マイク alt-ctrl-today【2010/08/22 01:19】

現在の閲覧者数: / 合計