OpenCVを使用したCGIでWeb上で画像処理を行う方法

このQ&Aのポイント
  • OpenCVはCGIを使用することでWeb上で画像処理を行うことができます。
  • クライアントがブラウザから画像をアップロードし、それにCGI(C++とOpenCV)で画像加工を行い、その結果をブラウザに表示することができます。
  • クライアント側のPCにOpenCVがインストールされていなくても、CGIを使用することで画像処理を行うことができます。
回答を見る
  • ベストアンサー

OpenCVはCGIで使用できるのでしょうか

普段、Visual C++でOpenCVを使い、Windowsのネイティブアプリを作る勉強をしています。 しかし今回、web上にてOpenCVの画像処理を用いたプログラムを動かさなければいけなくなりました。 なのですが私はwebに関して全くの素人で、色々調べた所CGIというもので出来そうだと分かりました。 C++とOpenCVを使ってCGIを作り、それをサーバに置くことでネイティブアプリと同じように動かせるのでしょうか? 例えば、クライアントがブラウザから画像をアップロードし、それにCGI(C++とOpenCV)で何らかの画像加工を行って、その結果をブラウザに返して表示するということは出来るのでしょうか。 また、出来るとすれば、クライアント側のPCにOpenCVがインストールされていなくても使えるのでしょうか。 どうぞよろしくお願いします。

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

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

わざわざハードルを上げる必要はないので、選択の余地があるならサーバーはWindowsのものを使えばよいと思います。 CGIにする場合でも、デスクトップ上のプログラムと内部的な処理に関しては同じです。 最大の違いはユーザーインタフェースですが、CGIにこだわらないなら.NET系の手法でもっと簡単に作れるのではないでしょうか?

sorachi74
質問者

お礼

なるほど。.NETを使うという手もあるんですね。 あまりいじったことはないのですが、簡単に出来そうです。 ユーザーインタフェースにこだわりはないので、検討してみようと思います。 ご回答、どうもありがとうございました。

その他の回答 (1)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

出来ないことはないと思いますがハードルは高いと思います。 OpenCVのアプリケーション自体をcgiにしなくても実行ファイルをcgiから実行する事もできます。 あとはLinuxサーバーを借りて設定する知識やらサーバー側のプログラムを組む知識やHTMLなどなど多くの知識が要求されるって事ですね。Windowsサーバーって事はまず無いと思うのでLinuxの勉強は必須です。 ※ 普通のレンタルサーバーでも出来そうな気がしないでもないですが出来なかった場合はVPSサーバーかクラウドサーバーを使う必要があるのでLinuxサーバーをZEROから設定できる程度の知識が必要です。

sorachi74
質問者

お礼

丁寧なご回答ありがとうございます。 CGIだけでなく様々なサーバ関係の知識が必要なんですね。 LinuxやHTMLもやったことがないので、まずその辺の勉強から始めようと思います。 勉強する方向性がわかりました。 どうもありがとうございます。

関連するQ&A

  • OpenCV1.1、OpenCV2.3の使い方

    これまでOpenCV1.1を使っていたのですが類似画像検索をするのにHOG特徴量を用いたいと思い、HOG特徴量を求める関数のあるOpenCV2.3もインストールしました。 その際、OpenCV1.1はアンインストールして、最初からプログラムを書き換えないとダメなのでしょうか?ためしに今まで書いていたプログラムにOpenCV2.3のライブラリをインクルードしてみると、それだけで100個以上のビルドエラーが発生してしまいました。CとC++の違いによるものなのでしょうか? あとPathの設定などもOpenCV1.1のときのものを残したまま、OpenCV2.3用のPathを追加しただけなのですが、大丈夫なのでしょうか? 解決方法がわかる方がいらっしゃれば、教えて下さい。よろしくお願いいたします。

  • OpenCVのリンクエラー

    Windows XP, Visual C++ 6.0の環境でOpenCVを始めました。OpenCVに含まれるサンプルのビルドにおいて「kalman.obj : error LNK2001: 外部シンボル "_cvDestroyWindow" は未解決です」等のエラーが発生します。初歩的な問題で申し訳ありませんが解決法を教えて下さい。尚、Visual C++のツール->オプション->ディレクトリには以下を加えております。 インクルード C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\CVAUX\INCLUDE C:\Program Files\OpenCV\OTHERLIBS\CVCAM\INCLUDE C:\Program Files\OpenCV\otherlibs\highgui ライブラリ C:\Program Files\OpenCV\lib C:\Program Files\OpenCV\otherlibs\highgui

  • OpenCVを使いたいのですが

    Visual C++ 2010にOpenCV2.4.3の導入し、設定を終えたのでプログラムをビルドさせるとエラーが吐き出され動作しません。 どなたか原因がわかる方はいらっしゃらないでしょうか? 【プログラム】 #include<stdio.h> #include<openCV2/opencv.hpp> #ifdef _DEBUG #pragma comment(lib,"opencv_core243d.lib") #pragma comment(lib,"opencv_highgui243d.lib") #pragma comment(lib,"opencv_objdetect243d.lib") #else #pragma comment(lib,"opencv_core243d.lib") #pragma comment(lib,"opencv_highgui243d.lib") #pragma comment(lib,"opencv_objdetect243d.lib") #endif //-------------------------------------------------------- //main int main(int argc,char* argv[]) { const char* szWndName="画像"; if(argc<2) { fprintf(stderr,"入力ファイル名を指定してください。\n"); return -1; } IplImage *img=cvLoadImage(argv[1],CV_LOAD_IMAGE_COLOR); if(img==NULL) return -1; cvNamedWindow(szWndName); cvShowImage(szWndName, img); cvWaitKey(0); cvDestroyAllWindows(); cvReleaseImage(&img); return 0; } 【ビルド後にでるエラーメッセージ】 ------ すべてのリビルド開始: プロジェクト: OpenCV, 構成: Debug Win32 ------ TEST02.c C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(19): error C2054: 'using' の後に '(' が必要です。 C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(19): error C2061: 構文エラー : 識別子 'using' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(19): error C2054: 'using' の後に '(' が必要です。 C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2061: 構文エラー : 識別子 'using' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2061: 構文エラー : 識別子 'abs' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2061: 構文エラー : 識別子 'atexit' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2061: 構文エラー : 識別子 'atof' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2061: 構文エラー : 識別子 'atoi' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2061: 構文エラー : 識別子 'atol' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2061: 構文エラー : 識別子 'bsearch' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2061: 構文エラー : 識別子 'calloc' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2061: 構文エラー : 識別子 'div' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2061: 構文エラー : 識別子 'exit' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2061: 構文エラー : 識別子 'free' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2061: 構文エラー : 識別子 'getenv' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(25): error C2061: 構文エラー : 識別子 'labs' この後はエラー表記が続きます。

  • opencvによる画像処理。

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

  • openCVでのデバックエラー

    画像や動画の研究で、aviファイルから色の抽出などを行うためにIntelのopenCVを使用と考えています。 しかし、自作プログラムやopenCVに付属されているサンプルプログラムさえもデバックが失敗してしまい実行することができません。 OSはWindows Professional version2002のVisualC++ 2005で動かしています。 openCVは「OpenCV_b5a」を使用しています。 インストール時にVC++のインクルードファイルに C:\Program files\OpenCV\cv\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\otherlibs\highgui ライブラリファイルに C:\Program files\OpenCV\lib を追加させました。 新しくプロジェクトを作成するたびに、リンカの入力に "cv.lib" "cxcore.lib" "cvaux.lib" "highgui.lib" "ipl.lib" を追加させプログラムを作っています。 しかし、デバックをするとすべてのプログラムにおいて、 'AAA.exe': 'C:\WINDOWS\system32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。 'AAA.exe': 'C:\WINDOWS\system32\kernel32.dll' を読み込みました。シンボルが読み込まれていません。 ・・・・・・ と、シンボルが読み込まれていませんとエラーが沢山表示され、 プログラム '[2508] AAA.exe: ネイティブ' はコード -1 (0xffffffff) で終了しました。 と、失敗して困っています。 初心者ですが、この原因が分かる方いましたらどうぞご教授ください。

  • OpenCVを Borland C++ Builder で使いたいので

    OpenCVを Borland C++ Builder で使いたいのですが、やり方がわかりません。 実際にOpenCVをBorlend C++ Builderに結合出来た方の回答をお願い致します。 ネットを検索してみたのですが、OpenCV V1 V2.0 V2.1の記事がごっちゃに成っていて、かつVisual Studioの記事が多く、Borlandの記事が余り見つからず、見つかってもOpenCV V1のものです。 出来れば最新の物を使用したいので、OpenCV 2.1を結合しようと思っています。 http://opencv.jp/opencv2-x-tips/install-on-windowswindows32bit-64bit-visual-studio-opencv21に書かれている通りにOpenCV-2.1.0-win32-vs2008.exeをDLしてCMAKEをBuildMakefilesを選択して Use default native compilersのラジオボタン実行すると、指定フォルダーに色々ファイルが作成されますが、これらを更にどのように加工して行けばBorland C++ builder用のBin h 等のファイルが作成されるのでしょうか。 CMAKE実行後のBuildフォルダー内のbin、libフォルダー内は空でした。 マニュアルによるとVisual Studioの時はOpenCV.slnが作られる事に成っていますが、BuildMakefilesを選択して実行後、*.sinで検索して見ましたが何も見つかりませんでした。 やり方をご存知の方、お教え下さい。 よろしくお願い致します。む

  • opencv1.0 画面が真っ黒

    以前までXPを使用しVisual C++ 2008にopencv1.0を導入し、USB接続のwebカメラから 画像をキャプチャしリアルタイムでの画像処理などのプログラミングしていたのですが、 このたびOSをXP(32bit) からwindows7(64bit)に変え、前使っていた環境つまり Visual C++ 2008 opencv1.0 で設定したところ、コンパイルは正常にでき、普通にpng画像などを取り込むような画像処理は可能なのですが、webカメラからの画像が読み込めず、真っ黒な画像が表示されてしまいました。 ちなみに実行したプログラムはXPの時には正常に作動していたものと同じものを実行しています。 また、webカメラ自体はamcapなどのソフトを使い動作させることはできます。 自分なりに考えた問題点は、 プログラムに問題がある、またはvisualC++を2010にする、opencvを2.2などの最新版に 更新するなどがあげられますが、 この場合なにが原因として考えられるのでしょうか? その点アドバイスいただけたらうれしく思います。 よろしくお願いします。 実行したプログラムは以下の通りです(取り込んだ画像を表示しているだけの、シンプルなプログラムです。直すところなどありましたら教えてください。) *************************************************** #include <cv.h> #include <highgui.h> #pragma comment(lib,"cv.lib") #pragma comment(lib,"cxcore.lib") #pragma comment(lib,"highgui.lib") int main(int argc, char** argv){ int key; CvCapture* capture; capture=cvCreateCameraCapture(-1); IplImage *frameImg =cvQueryFrame(capture); cvNamedWindow("Capture" ,CV_WINDOW_AUTOSIZE); while(1){ cvShowImage("Capture",frameImg); key = cvWaitKey(1); if(key=='q') break; } cvReleaseCapture(&capture); cvDestroyWindow("Capture"); return 0; } ****************************************************

  • OpenCVを使ったiPhoneアプリ開発!

    OpenCV を使ったiPhoneアプリを Xcode 3.1.4 で作りたいのですが,どうやって環境を整えればいいか分かりません??助けて下さい!! PC全くの素人です!授業でC++をVisual Studioで一通り扱ったくらいです. 現在, Mac OS X 10.5.8 を利用していて, Xcode 3.1.4 と iPhone SDK 3.1.3 をインストールしました. 今回,OpenCV を使ったiPhoneアプリを Xcode 3.1.4 で作りたいのですが, どこからOpenCVのライブラリやリソース等を入手し,どのディレクトリにいれ,どんなセッティングをすればいいのか全く分かりません. このサイトを見ますと, 「XcodeでOpenCV開発」 http://d.hatena.ne.jp/MineAP/20080112/1200125226 「ヘッダ検索パス」や「アーキテクチャ」の設定が何をしている作業のことか分からないのと,そもそもどのOpenCVライブラリをダウンロードしたらいいのか,また,Macを使っているのにIntel向けのアプリにしてしまっていいのか(最終的にはiPhoneで使えるアプリを作りたいですが,Macでも動いてほしい)がさっぱりです. また,こちらのサイトの方には 「iPhoneでOpenCVを使う方法」 http://niw.at/articles/2009/03/14/using-opencv-on-iphone/ja iPhoneでOpenCVを使う方法が書いてあるのですが,扱っているソースコードとリソースのバージョンがOpenCV 2.2.0、iOS SDK 4.3、Xcode4 で私の環境と異なっているのと,gitおよび,githubが何なのかWikipediaで調べても全く分からず,貼ってあるリンクのファイルがなんの為のものかも分からず,お手上げ状態です. プログラムについては文法はC++に関して一通りやりましたが,構造や仕組みなどに関しては全く駄目なので,なるべく詳しい解説をして下さると大変助かります!!!

    • 締切済み
    • Mac
  • ロリポップでのCGIファイルの使用について

    ホームページ作成ソフトで、携帯用サイトを作りサーバーにアップロードしたのですが、 ブラウザで確認するとエラー403がでてしまいます。 ソフトのユーザーサポートに問い合わせたところ、プログラムには問題がないので、 サーバーとCGIの関係で問題があるのではとの事でした。 エラー表示の注記に <CGIを利用の場合は「index.cgi」 の名前のファイルが無い場合、エラーが発生いたしますのでご注意ください。> とあったので、 試しにcgiのファイル名に「index.cgi」と入れてみたのですが、同じエラーが表示されてしまいました。 この場合、うまくブラウザに反映させるにはどのようにすれば良いのでしょうか。 利用環境・状況は次の通りですので、よろしくお願いいたします。 ■OS windowsXP ■ブラウザ IE ■アップロードしたファイル 「htmlファイル1つ」と「cgiファイル1つ」 ちなみに、htmlファイル単体ではブラウザに表示されるようです。

  • アップロードされた画像を加工して吐き出すcgiを探しています

    アップロードされた画像を加工して吐き出すcgiを探しています 下記の手順で画像を吐き出すものです 1.ウェブ上に設置されたcgiに画像をアップロードする 2.アップロードされた画像にマークやスカシなどを入れ、吐き出す スカシはランダムで数十種類を挿入できるものを望んでいます。 有料、無料問いません。よろしくお願いします。

    • 締切済み
    • CGI

専門家に質問してみよう