タグ

ブックマーク / imagingsolution.blog.fc2.com (5)

  • 【OpenCV】マスク処理 画像処理ソリューション

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

  • 【OpenCV】輪郭処理(cvFindContours)を使ったラベリング処理 画像処理ソリューション

    メインページ > OpenCV OpenCVには標準的にはcvLabelingのようなラベリングの関数は無いので、 ●ラベリングクラス(大阪大学の井村先生によるもの) ●Blob extraction library を使いましょう!というのが一般的になってきているように思いますが、最初のラベリングクラスでは、画像の幅の画素数が4の倍数で無い場合、うまく動作してくれなかった気がするし、Blob extraction library は英語なので良く分からないし・・・ ということで、OpenCVに標準的にある輪郭処理の関数【cvFindContours】を使ってラベリングの処理ができないか?調べてみました。 結果、OpenCVの関数だけで、こんな感じ↓まで出来ました。

  • OpenCV2.1の入手、ダウンロード、インストール、環境設定 画像処理ソリューション

    メインページ > OpenCV ※現在OpenCV2.3が公開されています。 OpenCV2.3についての解説は OpenCV2.3の入手、ダウンロード、インストール、環境設定 を参照下さい。 OpenCV2.0ではCMakeを使わないといけなくて、少し難しかったのですが、OpenCV2.1ではコンパイル済みのファイルが公開されているので、ずいぶんOpenCVのインストールが簡単になりました。 今回のバージョンアップではマルチスレッド処理対応がVer2.0ではOpenMPだったのに対し、Ver2.1ではTBB(Threading Building Blocks)へ変更となりました。 お恥ずかしながらTBBというのは今回初めて知ったのですが、せっかくなので、CMakeを使ってTBBに対応する方法も調べてみました。TBB対応の部分は後半にまとめていますが、もし、間違いなどありましたら、コメント

  • 最小二乗法による楕円近似 画像処理ソリューション

    "ここから先の計算"の簡素化 大変有り難い内容でしたが、大量に画像を処理する場合に45°でのエラーは問題だな、何とかならないかな、と思って色々とトライしてみたところ、意外ときれいに解く方法がありました。 まず、未知数をA~Eの5種類に減らしていますが、X^2の係数による規格化をやめて、先にA~Fの6種類と(a,b,x0,y0,θ)の関係を求めます。 紛らわしいので、αX^2+βXY+γY^2+δX+εY+ζ=0すると、 1. α+γ=(1/a^2+1/b^2) 2. β=(1/a^2-1/b^2)*2sinθcosθ=(1/a^2-1/b^2)*sin2θ 3. α-γ=(1/a^2+1/b^2)*(cosθ*cosθーsinθ*sinθ)=(1/a^2-1/b^2)*cos2θ 4. ζ=-2(x0*δ+y0*ε)-1 といった比較的きれいな関係が見いだせます。 θについて 2式と3式よ

  • 【OpenCV】開発環境(VisualStudio)の設定 画像処理ソリューション

    ライブラリを使うには、ダイナミックライブラリファイル(*.dll)、ライブラリファイル(*.lib)、インクルードファイル(ヘッダファイル)(*.h)が必要になり、これらを使えるようにVisualStudioの設定をする必要があります。以下、OpenCVをC++/CLIで使う場合の設定です。 dllファイルの設定については、 OpenCVの入手ダウンロード、インストール、環境設定 のページで紹介していますので、そちらを参照下さい。 インクルードファイル(*.h)の設定は、メニューのプロジェクト→【プロジェクト名】のプロパティで設定ウィンドウを開きます。 ここで、構成はすべての構成を選択し、構成のプロパティ→C/C++→全般を選択し、追加のインクルードファイルの右の方にある参照ボタンをクリックし、インクルードファイル(*.h)のあるディレクトリを指定します。 デフォルトのインストールではディ

  • 1