你能帮我解决以下问题吗?
我在 64 位 Debian Linux 上运行 Code::Blocks 13.12。我是这个IDE的新用户。当我在 Code::Blocks 中创建新的 OpenCV 项目并设置正确的编译器标志和链接器标志时,即通过放置 ...
- "pkg-config opencv --cflags"到"编译器">>"编译器设置"选项卡>"其他选项"选项卡中的"pkg-config opencv --cflags"中的设置
- "pkg-config opencv --libs"到"编译器">"链接器设置"选项卡>>"其他链接器选项 "/usr/include/,/usr/include/opencv/,/
- usr/include/opencv2/ 路径进入"设置">"编译器">"搜索目录"选项卡>"编译器"选项卡,
项目的编译很好。唯一不起作用的是OpenCV函数的代码完成。
我在main.cpp中有以下代码。当我在imread
功能上单击鼠标右键并选择查找声明:"imread"菜单选项时,会引发带有"未找到:imread"消息的警报。但是在性病cerr
上做同样的事情可以按预期工作。
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main( int argc, char * argv[] ) {
Mat img = imread( "lena.jpg", CV_LOAD_IMAGE_COLOR );
if ( img.empty() ) {
cerr << "Unable to load the Lena image!" << endl;
return -1;
}
namedWindow( "lena", CV_WINDOW_AUTOSIZE );
imshow( "lena", img );
waitKey( 0 );
return 0;
}
当我选择左侧垂直栏上的符号选项卡时,我可以看到那里的 cv 命名空间,但它似乎是空的。没有子项,不能将其扩展为 std 命名空间。
我做错了什么吗?我应该如何说服Code::Blocks也解析OpenCV的标头?只是重新启动/重新打开 IDE/项目不起作用。:-)
非常感谢您的回复。
在 Ubuntu 12.04 上使用 Code::Blocks 10.05 我正在这样做,你可以试试这个。
转到设置>编译器和调试器设置
-
在"搜索目录"选项卡中,单击"编译器"子选项卡,添加OpenCV包含路径,
通常,
/usr/local/include
-
单击链接器子选项卡并添加 opencv bin 目录
通常
/usr/local/bin
-
现在转到链接器设置选项卡,然后在其他链接器选项上添加链接库
喜欢
-lopencv_calib3d-lopencv_contrib-lopencv_core-lopencv_features2d-lopencv_flann-lopencv_highgui-lopencv_imgproc-lopencv_legacy-lopencv_ml-lopencv_nonfree-lopencv_objdetect-lopencv_photo-lopencv_stitching-lopencv_superres-lopencv_ts-lopencv_video-lopencv_videostab