最近の記事
  • 5/24 Anacondaのアンインストール
  • 5/24 【Jupyter Notebook】新規プログラムの作成
  • 5/23 【Python】開発環境の構築
  • 5/23 Pythonはじめました
  • 5/14 simplicity2-child
  • 4/6 【Office365】Web版Outlookのスレッド表示を解除する方法
  • 4/5 【Excel】フーリエ解析(FFT)
  • 3/20 Canny edge detection
  • 3/20 【Excel2016】分析ツールの表示
  • 3/5 【Visual Studio】黒い背景色を白に変更する方法
  • 2/8 【Windows10】拡張モニタに表示されたウィンドウを元に戻す
  • 2/7 複素数の計算
  • 1/18 【Excel】棒グラフの横軸の目盛を0始まりにする
  • 1/16 【Excel】フーリエ変換
  • 1/6 【OpenCV】疑似カラー(カラーマップ)
  • 11/8 【Visual Studio】検索結果のウィンドウ表示
  • 11/3 ニコン 一眼レフカメラ D5500レビュー
  • 10/26 カラーカメラはモノクロカメラを兼ねない
  • 9/6 (Free Soft)Animation GIF Builder
  • 8/30 【C#】タブの無いTabControlっぽいものを作る
  • 8/29 【OpenCvSharp】サンプルプログラムの公開
  • 8/28 【PowerPoint】部分的にカラーにする(セレクトカラー処理)
  • 8/27 【C#】引数の値渡し、参照渡し(ref, out)
  • 8/26 【Word/Excel】図形内に文字を挿入する
  • 8/25 【C#】NumericUpDownコントロール
  • 8/24 ニコン D3400 VS D5500 仕様比較
  • 8/22 【C#】MDIフォームにリサイズ可能なPanelを設置する
  • 8/20 【Visual Studio 2015】文字の色が変、かすむ
  • 8/20 【Visual Studio】行のコピー、切り取り、貼り付け
  • 8/20
  • 8/16
  • 7/7 標準偏差のよくある誤解
  • 6/8 FPGA処理によるカラー光切断法の公開(参考出品)
  • 5/28 OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す
  • 3/19 【ImageDataクラス】画像の輝度値のCSVファイル保存
  • 3/19 【ImageDataクラス】Regionプロパティ
  • 3/19 【ImageDataクラス】画像の輝度値(画素値)の取得/設定
  • 3/19 【ImageDataクラス】InterpolationModeプロパティ
  • 3/19 【ImageDataクラス】BorderTypeプロパティ
  • 3/18 【ImageDataクラス】サンプルプログラム
  • 3/17 ImageDataクラスライブラリの使用方法
  • 3/17 【C#】ImageDataクラスライブラリ公開
  • 3/17 ImageDataクラスライブラリ
  • 2/25 【OpenCV】黒板風処理
  • 12/17 【Excel】絶対参照、相対参照の切替
  • 12/16 【Windows10】モニタの文字のかすれを直す
  • 11/28 【C#】Chartを使ったヒストグラム表示
  • 11/28 【C#】Chartコントロールをとりあえず使ってみる
  • 11/25 【C#】Chartコントロールの主なプロパティ
  • 11/25 【C#】Chartコントロールの使用方法

  • 【OpenCV2.3】サンプルプログラム(C言語版)

    シェアする

    • このエントリーをはてなブックマークに追加

    OpenCV2.3においても、プログラムの作成方法はOpenCV2.2の時とさほど変わりません。

    ここでは、OpenCV2.3の入手、ダウンロード、インストール、環境設定で紹介している方法でインストールした場合を想定しています。

    基本的なC言語のプロジェクトファイルの作成方法については

    【OpenCV2.2】新規プロジェクトの作成方法(C言語版)

    のページを参照して下さい。

    このページと異なるのはヘッダファイル(インクルードファイル)のディレクトリの設定方法のみです。

    設定方法は

    プロジェクトのプロパティで構成プロパティ⇒C/C++⇒全般の追加のインクルードディレクトリに

    C:\OpenCV2.3\include

    を指定します。

    簡単なサンプルプログラムは以下の通りです。

    // OpenCV23-C-Sample.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
    //
    
    #include "stdafx.h"
    
    //プロジェクトのプロパティ⇒C/C++⇒全般 の追加のインクルードディレクトリに
    // 『C:\OpenCV2.3\include』を追加のこと
    #include "opencv2\\opencv.hpp"
     
    #ifdef _DEBUG
        //Debugモードの場合
        #pragma comment(lib,"C:\\OpenCV2.3\\lib\\opencv_core230d.lib")
        #pragma comment(lib,"C:\\OpenCV2.3\\lib\\opencv_imgproc230d.lib")
        #pragma comment(lib,"C:\\OpenCV2.3\\lib\\opencv_highgui230d.lib")
    #else
        //Releaseモードの場合
        #pragma comment(lib,"C:\\OpenCV2.3\\lib\\opencv_core230.lib")
        #pragma comment(lib,"C:\\OpenCV2.3\\lib\\opencv_imgproc230.lib")
        #pragma comment(lib,"C:\\OpenCV2.3\\lib\\opencv_highgui230.lib")
    #endif
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    
        //画像データの読込
        IplImage* src_img = cvLoadImage("C:\\OpenCV2.3\\samples\\c\\lena.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
        if (src_img == NULL){
            return 0;
        }
     
        //表示ウィンドウの作成
        cvNamedWindow("src");
        cvNamedWindow("dst");
     
        //処理後画像データの確保
        IplImage* dst_img = cvCreateImage(cvGetSize(src_img), src_img->depth, src_img->nChannels);
     
        //画像処理例(ガウシアンフィルタ)
        cvSmooth(src_img, dst_img, CV_GAUSSIAN, 9);
     
        //画像の表示
        cvShowImage ("src", src_img);
        cvShowImage ("dst", dst_img);
     
        //キー入力待ち
        cvWaitKey (0);
     
        //全てのウィンドウの削除
        cvDestroyAllWindows();
     
        //画像データの解放
        cvReleaseImage(&src_img);
        cvReleaseImage(&dst_img);
     
    	return 0;
    }
    

    サンプルプログラムのダウンロードはこちらより
    OpenCV23-C-Sample.zip (Visual Studio 2010 C++ Expressで作成しています。)

    実行例

    OpenCV2.3-C-Language-Sample

    OpenCVへ戻る

    シェアする

    • このエントリーをはてなブックマークに追加

    フォローする

    関連記事

    スポンサーリンク

    コメント

    1. 初心者 より:

      いつもありがとうございます。
      実は私はいま卒業研究でOpenCVの学習をおこなっているのですが、ぜひakiraさんに御協力をお願いしたいです。
      御忙しいとは思いますが今までのようにアドバイスという形で大丈夫なのでぜひ検討してみてください。
      よろしくお願いします。

    2. 初心者 より:

      いつもありがとうございます。
      「詳解 OpenCV コンピュータライブラリを使った画像処理・認識」 という本を参考にしているのですが、サンプルプログラムがうまくコンパイルできないのですがどうしたらよいでしょうか?(この本で1.0を解説しているため使用しています)

      • akira より:

        最終的にはこのページ
        http://imagingsolution.net/program/how-to-use-library/
        に記載しているように、ライブラリの使用方法を理解して頂くのが一番だと思いますが、
        まずは、どのバージョン、どんなサンプルプログラムでもいいので、OpenCVが動くプログラムを試してみて下さい。
        このページではVer2.3ですが、サンプルプロジェクトで公開しています。
        そしたら、詳解OpenCVなどで公開されているプログラムのmain文(このページでは_tamin)の中身をすり替えれば、動作するはずです。
        また、OpenCVのバージョンによる違いですが、main文の中身はc++インターフェース(cv::とつく関数)を使っていない限り、どのバージョンでも共通で動くと思います。

    3. 初心者 より:

      返信ありがとうございます。さっそく見てみます。
      WEBカメラを用いてリアルタイムで取得した画像の編集を考えているのですがOpenCVの使い方がいまいちわからなく、資料が1.0のものがあったので1.0を使っていました。
      サンプルプログラムなどが置いてあり、初心者にわかりやすいサイトなどがあったら教えていただけないでしょうか。

      • akira より:

        最近のOpenCVのバージョンアップのペースが速いので、なかなか全範囲においても最新バージョンで説明されているものは、みつからなくなりましたね。
        ここややはり、基本を抑えてライブラリの使い方を覚えた方がおススメです。
        OpenCVのVer2.3のときの説明ですが、
        インストール方法
        http://imagingsolution.net/program/opencv/opencv2-3/opencv2-3-downlaod-install/
        から、サンプルプログラムの作成方法
        http://imagingsolution.net/program/opencv/opencv2-3/c-sample-program/
        まで、一応、まとめています。
        これらの説明で、230と書かれている部分を231に置き換えて頂くと、最新のバージョンに対応できると思います。
        USBカメラの使用方法については
        http://opencv.jp/sample/video_io.html
        のページが参考になると思いますが、バージョンが変わると、ヘッダ部分も変わってくるので、その辺が慣れていないとちょっと難しく感じるかも?しれませんね。

        USBカメラの取り込みについても、バージョンが上がるにつれ、改善されてきているので、少なくとも、Ver2.0以降の方が使いやすかった気がします。

    4. 初心者 より:

      返信ありがとうございます。
      わけあってOpenCV1.0を使うことにしました。

      すみませんがこれからまたわからないことがあったら教えていただけませんか?
      OpenCVの関数の説明などをお願いしたいのですが・・・

      • akira より:

        訳があるという事で、強くは言いませんが、いろいろとバグも修正されてきているので、Ver.2.3.1の方がおすすめです。
        もし、OpenCVの環境構築が難しいというのであれば、まずは、一般的にライブラリをどのようにして使えば良いのか?という事を抑えた方が、今後の応用も効くのでいいですよ。
        こちらのページも参考にしてみて下さい。
        http://imagingsolution.net/program/how-to-use-library/
        理解できると、ライブラリを使うときは、*.h、*.lib、*.dllの3種類のファイルをどのように設定すればよいのか?というだけ!と思えてくるので、後が楽です。
        あと、関数の説明ですが、Ver1.0をお使い(C言語で使う場合)であれば、このページ
        http://opencv.jp/opencv-1.0.0/document/
        を見ると、関数ごとの説明がまとまっているので、わかり易いと思います。
        さらに詳しく知りたい場合は、オライリーから発行されている詳解OpenCVという本がおススメです。

    5. 初心者 より:

      最近こちらの記事を参考にさせていただいている者です。
      すみませんが上記の方法を試したところ次のようなエラーメッセージが出たのですが解決方法を教えてはいただけないでしょうか。

      1>—— ビルド開始: プロジェクト: shiken00, 構成: Debug Win32 ——
      1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(268,5): error MSB6006: “link.exe” はコード 1104 を伴って終了しました。
      1>LINK : fatal error LNK1104: ファイル ‘C:\OpenCV2.3\lib\opencv_core230d.lib’ を開くことができません。
      ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

      • akira より:

        まず、お使いのOpenCVはVer2.3でよろしいでしょうか?
        エラーメッセージにあるように『‘C:\OpenCV2.3\lib\opencv_core230d.lib’を開く事ができません』というのは、このopencv_core230d.libがC:\OpenCV2.3\libに無いため、エラーが出ています。
        もし、Ver2.3.1をお使いの場合は、ファイル名がopencv_core231d.libですし、このファイルのあるディレクトリも異なる場合あります。
        その場合は、#pragma commentのファイル名の部分を修正して下さい。

    6. akira より:

      お返事が遅くなり大変申し訳ありません。
      エラーの内容ですが、メッセージの通りに、opencv.hppというファイルがプログラムから見つける事ができないエラーです。
      この記事の内容ではOpenCV2.3.0がインストールされ、
       c:\OpenCV2.3\include\opencv2
      のフォルダ内にopencv.hppのファイルが無いと今回のようなエラーになります。
      まずは、このフォルダ内にopencv.hppのファイルがあるか?ご確認下さい。
      もし、別の場所にファイルがある場合は、VisualStudioで
        プロジェクトのプロパティ⇒C/C++⇒全般 の追加のインクルードディレクトリ
      の設定を変更して下さい。
      ただ、その場合はlibファイルの場所が異なる可能性もあるので、libファイルの場所もご確認下さい。

    7. 学生T より:

      質問なのですが、上記のサンプルプログラムを実行しようとしたら下記のエラーがでてきました。
      このエラーはどのような意味なのでしょうか。また、解決法はどのようにすればよろしいのでしょうか。
      fatal error C1083: include ファイルを開けません。’opencv2\\opencv.hpp’: No such file or directory