• ベストアンサー

OpenCvを利用して画像の置換処理を行いたいです。

OpenCvを利用して画像の置換処理を行いたいです。 置換処理をする上で背景と物体の分離をしたいです。 なにかよい方法はありませんか? ↓の図の場合、青い円の部分だけを赤い四角に置換したい。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

この図の通りにやるのはむずかしいと思います。 青丸の中と外を分ける方法はあります。 しかし、青丸をどかした背景はどこから持ってきたらよいのでしょう? 背景画像が別にあるのなら、cvCopyとマスク画像を使って背景+青丸画像、背景+赤四角画像を作成することは簡単ですが。 http://www.amazon.co.jp/dp/4839931593 こちらの本には、時系列に並んだ複数の画像から「変化の無い物=背景」として抽出するサンプルが載っています。

aimhighunder17
質問者

お礼

そうですか… ありがとうございます。 大変参考になりました。

関連するQ&A

  • opencvによる画像処理。

    opencvによる画像処理。 今opencvを使った画像処理をしているのですが、これって普通のプログラム中に関数みたいな感じで使う事って出来ないのでしょうか? 例えば、Cで車両を制御するプログラムを作ってる場合に、車両が何mm進んだ時点で車両に取り付けたカメラを使って、画像処理を行う。みたいな処理をしたいです。 でもopencvのmain文って、引数が二つあってそれをどう渡せばいいのかよく分かりません。 素人なので分かりずらくて申し訳ありません。

  • OpenCVでマスク処理で「ぼかし」は可能か?

    インテルが提供しているOpenCVで画像処理を行う為に画面全体ではなく部分的にもしくは強弱を付けて「ぼかし」をかけたいのですがどの様に行えば良いのか分かりません。部分的に四角く行うにはROIなど使用すれば良いのですが、例えば円形や上下に向けて「ぼかし」が強くなる方法が分からないのです。添付しました画像のようなグラデーションで作成したマスク画像を利用してグラデーション色の強弱で「ぼかし」の強弱を付ける方法などないのでしょうか?どなかた分かる方がいましたらお手数ですがお知らせください。宜しくお願い致します。(OpenCVでは無理であればC++などで再現するサンプルプログラムなど掲載されているサイトなどでも構いません!)

  • openCVの超解像処理 その2

    前回,openCVの超解像処理を質問させてもらったものです. 今, http://opencv.jp/opencv2-x-samples/usage_of_sparsemat_2_superresolution の超解像処理をそのまま実行しています. 前回の質問(http://okwave.jp/qa/q6341130.html)で,1枚の画像を劣化させて複数の画像を作りだして,超解像処理をしていることはわかり,実行できるようになりました. しかし,実際に行いたいのは,自分が持っている複数の画像を使って超解像処理を実行してみたいのですが,その場合プログラムのどの部分をどのように変えたらいいのでしょうか? ヒントだけでもいいので,ご面倒かもしれませんが,ご教授お願いします.

  • ブログ内の画像処理(縁ぼかし)をしたが・・・

    gooブログを書いています。画像処理ソフトで縁を丸や四角にぼかしてUPしているのですが、UPすると背景画像がピンクなのですが白い四角の枠の中に画像処理した丸でぼかした画像とか、四角で縁をぼかした画像が入っている感じです。 四角で(白く)画像部分が区切られてしまうのではなく、せっかく画像処理でぼかしているので背景色のピンクに自然にそのままぼかしてUPできる方法を教えて下さい。

  • opencvを使って画像比較

    opencvを使って画像比較をしたいです。 具体的には、デスクトップの背景の一部分(4×4bitくらい)が、画面上にあれば処理を実行する、みたいにしたいです。(他のウィンドウなどで隠れていたら実行しない) 具体的にどのような関数を使えば作れますか? テンプレートマッチングという方法でいけそうなのですが、一旦プリントスクリーンキーなどで画面を保存して、それと切り取った4×4の画像を比較していく。のような感じにすればいいのでしょうか? そのような関数はあるのでしょうか? それと画面を一瞬で保存して、IplImageに保存する。みたいな関数はありますか? 下手くそな日本語ですが回答よろしくお願いします・・。

  • OpenCVについて教えてください

    就職面接でOPenCVについて部活で勉強をしているということを伝えたいのですが、 今はOpenCVで顔の部分を判断して四角で囲むという初歩的な事しかできてないのですがそれだけだと印象が薄いと思います。 例えば二重かどうかや鼻が高いかだったり顔が左右非対称かだったりの判断を、 二重についてだと、二重の大量のデータや一重の大量のデータを覚えさせて、ビッグデータからAIに学習させて、処理させる事も可能なんですか?また、ネットで調べたりすればそのような事をOpenCVで行う方法はでてくると思いますか? 以上です分かりにくくてすいません、面接は9月中旬に行われます。ちなみに高校生です

  • OpenCV処理画像をpictureBoxへ。

    VC++にて画像処理を行っています。 OpenCVのライブラリを使って画像処理をしようと考えているのですが、 処理した画像がMFCで作成したpitureBoxに表示の仕方が分かりません。 調べていくうちに、 「IplImage形式の画像を直接ウィンドウに描画することは出来ないので、 画像をDIBセクション形式に変換してWindows固有の描画処理を行うといい。」 ということが分かり、DIBセクション形式への変換には、IPLを入手し、 「iplConvertToDIB()関数」を使うということが分かりました。 このiplConvertToDIB()関数をつかって画像表示の方法を教えてはいただけないでしょうか?サンプルのソースなどありましたらよろしくお願いいたします。

  • 組み込みでの画像処理

    こんにちは 最近組み込みプログラミングについて勉強し始めました初心者ですので、質問に稚拙な部分等があっても目をつぶっていただけるとありがたいです。 今まで、スタンドアローンのPCで画像処理(OpenCVを使用)をしたことがあるのですが、組み込み機器上で画像処理を行う場合にもOpenCVは使用できるのでしょうか? また使用できない場合は、どのように画像処理を行うのでしょうか? お答えよろしくお願いいたします。

  • OpenCVの画像表示について。

    OpenCVにて画像処理ソフトをつくっています。 VC++で、まず簡単に開くボタンから画像を開き、ピクチャーボックス、またはウィンドウに画像を表示するものを作ろうと思います。 しかし、ソースの中にファイル名を指定することでしか画像を開く方法しか方法がわかりません。 どのようにしてボタンを設置すればよいのでしょうか? また、プロジェクトの種類はWin32だけでしか作れないのでしょうか? OpenCVを使い始めたばかりの者でとても的外れな質問だとは思いますが、どうぞよろしくお願いいたします。

  • OpenCVで画像の一部を取り出す。

    VC++でOpenCVにて画像処理をしています。 CvRect rec = cvRect(30,120,160,50); cvSetImageROI(tmp_img1, rec); これを使って画像の一部を取り出そうと思うのですが、 取り出した部分以外を白にする仕方が分かりません。 分かる方がいらっしゃいましたらよろしくお願いいたします。

専門家に質問してみよう