ページ 1 / 1
Raspberry PiでopenCVをC++で使う方法について
Posted: 2013年11月18日(月) 20:08
by Arare
Raspberry PiでOpenCVをC++で動かしたいのですが、プログラムを実行してみると
"stdafx.h"が読み取れないといった趣旨のエラーが出てしまい、実行できません
Raspberry PiにはC++とOpenCV2.4.2は、おそらくインストールできていると思います
わかるひとがいらっしゃいましたら
なぜ"stdafx.h"が読み取れないのか
どのように変えればそのプログラムが動くようになるのか教えてください
宜しくお願い致します
コード:
#include "stdafx.h"
#include <opencv2/opencv.hpp>
#pragma comment(lib,"opencv_imgproc242d.lib")
#pragma comment(lib,"opencv_core242d.lib")
#pragma comment(lib,"opencv_highgui242d.lib")
int _tmain(int argc, _TCHAR* argv[])
{
IplImage *Image;
//window open
cvNamedWindow("DisplayImage",CV_WINDOW_AUTOSIZE);
if((Image = cvLoadImage("Image.jpg")) == NULL){
printf("failed to open Image\n");
cvWaitKey (0);
return -1;
}
cvShowImage("DisplayImage",Image);
cvWaitKey(0);
cvDestroyWindow("DisplayImage");
cvReleaseImage(&Image);
return 0;
}
Re: Raspberry PiでopenCVをC++で使う方法について
Posted: 2013年11月18日(月) 21:47
by Poco
ラズベリーパイ上で動作するOSはLinuxですよね?
ソースコードはパッと見、Winodws向けに見えますが、ラズベリーパイ上でWindowsは動きませんよね?
1,3,4,5,7行目はWindows向けとなっているので、Linux向けに修正してください。
1行目削除。
3,4,5削除リンクオプションでそれぞれライブラリを指定。
#*.libという名前もLinux上のOpenCVでは違う名前になっていると思います。
#*.soとか。
7行目_tmain→main、_TCHAR→char
Re: Raspberry PiでopenCVをC++で使う方法について
Posted: 2013年11月18日(月) 23:45
by Arare
解答ありがとうございます!
1,3,4,5,7行目の部分をLinux向けに修正して書き直すと具体的にどのようになりますか?
あと、内部の部分のプログラムはこのまま使用してもLinuxで動きますか?
Re: Raspberry PiでopenCVをC++で使う方法について
Posted: 2013年11月19日(火) 00:00
by Poco
Arare さんが書きました:解答ありがとうございます!
1,3,4,5,7行目の部分をLinux向けに修正して書き直すと具体的にどのようになりますか?
あと、内部の部分のプログラムはこのまま使用してもLinuxで動きますか?
具体的にとはどういう意味でしょうか?修正内容は示したつもりですが。
ほかの部分に関しては、Raspberry piもOpenCVも持っていないのでわかりません。
とりあえずコンパイルしてみてはどうでしょう?
Re: Raspberry PiでopenCVをC++で使う方法について
Posted: 2013年11月19日(火) 00:02
by みけCAT
.libに相当するものは.soではなくて.aだと思います。
Re: Raspberry PiでopenCVをC++で使う方法について
Posted: 2013年11月19日(火) 00:13
by softya(ソフト屋)
よくわからないのであれば、window用のopenCVを参考にせずLinuxあるいはRaspberry Pi用のサンプルコードを使うべきですよ。
Raspberry Pi用を参考にするのが一番だと思いますけど。
Re: Raspberry PiでopenCVをC++で使う方法について
Posted: 2013年11月19日(火) 00:18
by Arare
3,4,5行目
#pragma comment(lib,"opencv_imgproc242d.lib")
#pragma comment(lib,"opencv_core242d.lib")
#pragma comment(lib,"opencv_highgui242d.lib")
ここの最後のlib部分を.aにして
7行目を
_tmain→main、_TCHAR→char
にすればいいのですか?
間違いございましたらご指摘宜しくお願い致します
Re: Raspberry PiでopenCVをC++で使う方法について
Posted: 2013年11月19日(火) 00:27
by Poco
Arare さんが書きました:3,4,5行目
間違いございましたらご指摘宜しくお願い致します
3,4,5行目は削除してください。
リンク時にリンクしてください。
リンクは共有ライブラリ(*.so、Windowsでいうdll)でリンクするか、静的ライブラリ(*.a)でリンクしてください。
#選択によってリンクの仕方が違います。and OpenCVを持っていないので、私には正確なライブラリ名が分かりません。
Re: Raspberry PiでopenCVをC++で使う方法について
Posted: 2013年11月19日(火) 21:44
by Arare
コード:
#include <opencv2/opencv.hpp>
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/types_c.h"
#include "opencv2/core/version.hpp"
#include "opencv2/highgui/highgui_c.h"
#include <iostream>
int main(int argc, char* argv[]) {
IplImage *Image;
//window open
cvNameWindow("DisplayImage",CV_WINDOW_AUTOSIZE);
if((Image = cvLoadImage("Image.jpg)) == NULL){
printf("failed to open Image\n");
cvWaitKey (0);
return -1;
}
cvShowImage("DisplayImage",Image);
cvWaitKey(0);
cvDestroyWindow("DisplayImage");
cvReleaseImage(&Image);
return 0;
}
自分なりに書き直してみましたができません
どこが間違っていますか?
Re: Raspberry PiでopenCVをC++で使う方法について
Posted: 2013年11月19日(火) 21:54
by みけCAT
cvLoadImageの引数のダブルクォーテーションマークが足りません。
インデントもきちんとした方がいいと思います。