SourceChord

C#とXAML好きなプログラマの備忘録。最近はWPF系の話題が中心です。

OpenCvsharp の検索結果:

OpenCvSharpでGrabCutを使った領域抽出

…OpenCVネタ。 OpenCvSharpを使って、grubcutでの領域抽出をやってみました。 OpenCVに用意されているGrabCut関数を使うと、画像中の前景/背景領域を簡単に抽出できます。 GrabCutは、「InitWithRect」「InitiWithMask」という二種類の方法で、抽出領域の指定ができます。 それぞれの方法を試してみました。 全コードは、↓のリポジトリに上げてます。 矩形の範囲指定での領域抽出 GrabCut関数の引数でGrabCutModes…

OpenCvSharpで顔検出

…をやってみました。 OpenCvSharpのサンプルコードをベースにちょっと書き換えただけですが、意外とシンプルなコードで書けるもんですね。 今回は程よいサンプル画像がないので、コードだけφ(..)メモメモ static void Main(string[] args) { // カスケード分類器の準備 var haarCascade = new CascadeClassifier("Data/haarcascade_frontalface_default.xml"); us…

OpenCvSharpで透視投影の補正

OpenCvSharpを使って、透視変換を行ってみました。 static void Main(string[] args) { // 入力画像中の四角形の頂点座標 var srcPoints = new Point2f[] { new Point2f(69, 110), new Point2f(81, 857), new Point2f(1042, 786), new Point2f(1038, 147), }; // srcで指定した4点が、出力画像中で位置する座標 var…

OpenCvSharpでマウス・キーボード入力を扱う

…ttonというのが表示されました。 気になってコードを見てみたところ、以下のように「LButtonDownとFlagLButton」、「LButtonUpとFlagMButton」が同じ値として列挙体で定義されているため、FlagLButtonなどの方が表示されていたようです。 https://github.com/shimat/opencvsharp/blob/master/src/OpenCvSharp/modules/highgui/Enum/MouseEvent.cs

OpenCVでパラメータ操作用ウィンドウを作ってみる

以前、OpenCVSharpで作成したウィンドウに、スライダーを付けてみました。 http://sourcechord.hatenablog.com/entry/2016/08/21/202200 このスライダーを活用し、スライダーだけが並んだウィンドウを作ることができます。 画像を表示しているウィンドウ上にスライダーで余計なスペースを取ることなく、 画像を編集するためのスライダーが並んだ、操作パネルのようなものが作成できます。 class Program { static …

OpenCVで色々な画像生成

今回もOpenCvSharpネタ。 今度はちょっと脱線気味。 OpenCVでピクセル操作や図形描画機能を使って、いろんな画像を生成してみます。 ノイズ画像の生成 各ピクセルのRGB値を乱数で設定すると、このようなノイズ画像が作成できます。 static void Main(string[] args) { var r = new Random(); var img = new Mat(240, 320, MatType.CV_8UC3, new Scalar(0, 0, 0)…

画像をHSV色空間に変換して表示

引き続き、OpenCvSharpネタです。 CvtColor関数で、通常のRGB色空間の画像データから、HSV色空間のデータに変換できます。 このサンプルでは、読み込んだ画像をHSV色空間に変換した後、H, S, Vの各チャンネルを分割し、それぞれの成分ごとのモノクロ画像を生成して表示しています。 static void Main(string[] args) { using (var src = new Mat(@"Images/1.jpg")) using (var hs…

OpenCvSharpで作成したウィンドウにスライダーを付けてみる

OpenCvSharpで作成したウィンドウに、スライダーを付けてみます。 作成したウィンドウに対してCreateTrackbar2を呼び出すことで、ウィンドウにスライダーを付加できます。 ちなみに、CreateTrackbar/CreateTrackbar2と似たような名前の関数が用意されてますが、それぞれの用途の違いなどはまだ把握できてないです。。。 関数のシグネチャが若干違いますが、どちらの関数でもスライダーを作成できました。 スライダーの作成 まずは、スライダーを作成し…

OpenCvSharp3入門

前回に続き、再度OpenCvSharpネタです。 色々使ってみたので、使い方などを一通りメモしときます。 参考情報 OpenCvSharpのC++API対応についての説明 http://schima.hatenablog.com/entry/2014/03/29/140106 OpenCvSharpのWiki。ここのC++ APIの部分など。 https://github.com/shimat/opencvsharp/wiki http://opencv.jp/referen…

OpenCvSharp3を使ってみた

…ラッパーライブラリのOpenCvSharpというライブラリを使ってみました↓ http://sourcechord.hatenablog.com/entry/2014/09/22/010344 OpenCV3.0に対応した、このライブラリの新バージョンOpenCvSharp3を使ってみたのでφ(..)メモメモ 変更点については、作者さんの↓の記事を参照 よく使うクラスなどに関わる、大きな変更点は以下のような点でしょうか。 IplImage型がなくなった Cvクラス、CvWin…

OpenCvSharpを使って、画像中の不要オブジェクトの除去をしてみる

…けラッパーライブラリOpenCvSharpを利用して呼び出してみます。 http://opencv.jp/opencv-2svn/cpp/miscellaneous_image_transformations.html#cv-inpaint とりあえず、ちゃっちゃとコードと結果だけメモ。 準備 適当にコンソールアプリのプロジェクトを作り、NugetからOpenCvSharpをインストールします。 PMコンソールからインストールする場合は、以下のコマンドで。 Install-P…

OpenCvSharpでWebカメラ画像のキャプチャ

… x:Class="OpenCVSharpTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Width="525" Height="350" Loaded="Window_Loaded"> <Grid> <Grid.…

OpenCvSharpで動画再生

OpenCvSharpネタの続きです。 今度はOpenCvSharpを使って、動画ファイルの再生をしてみます。 動画ファイルの再生手順 1.動画ファイルの読み込み 動画ファイルを再生する時にはCvCaptureというクラスを使います。 ↓のように、CvCaputureクラスのコンストラクタに、ファイルのパスを渡してインスタンスを生成します。 var capture = new CvCapture([再生する動画ファイルのパス]) 2.動画内のフレームを取得 動画の各フレームは…

OpenCvSharpを使ってみる

…るようにラップした、OpenCvSharpというライブラリを使ってみました。 コレ、すごくいい感じですね。 OpenCvSharp https://github.com/shimat/opencvsharp 特徴 日本の作者さんが作成してる 作者さんのブログなど、日本語の情報が多くて、とっつき安いです。 http://schima.hatenablog.com/entry/2014/01/30/105406 Nugetですぐに使える Nugetパッケージが公開されているので、…