Ubuntu cvBlob示例不工作cvLabel

Ubuntu cvBlob示例不工作cvLabel,ubuntu,opencv,compiler-errors,blob,Ubuntu,Opencv,Compiler Errors,Blob,我尝试在opencv中的Ubuntu下使用cvBlob库进行blob检测,但一开始就被阻止了。当我尝试编译该站点的示例表单时: #include <cv.h> #include <highgui.h> #include <stdio.h> #include "cvblob.h" using namespace cvb; using namespace std; int main( int argc,char** argv){ if( argv[1]

我尝试在opencv中的Ubuntu下使用cvBlob库进行blob检测,但一开始就被阻止了。当我尝试编译该站点的示例表单时:

#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include "cvblob.h"

using namespace cvb;
using namespace std;

int main( int argc,char** argv){
    if( argv[1] == NULL ){
        printf("\n Please Provide a valid Argument \n");
        return(0);
    }
    else{
        IplImage* src = cvLoadImage(argv[1],CV_LOAD_IMAGE_UNCHANGED);
        cvNamedWindow("Original",CV_WINDOW_AUTOSIZE);
        cvShowImage("Original",src);
    IplImage src_g;
    cvThreshold(src, src_g,35,255, CV_THRESH_BINARY);  
    IplImage *labelImg=cvCreateImage(cvGetSize(src_g), IPL_DEPTH_LABEL, 1);
    CvBlobs blobs;
    unsigned int result=cvb::CvLabel(src_g, labelImg, blobs);
    cvRenderBlobs(labelImg, blobs, src, src);
    for (CvBlobs::const_iterator it=blobs.begin(); it!=blobs.end(); ++it)
    {
      cout << "Blob #" << it->second->label << ": Area=" << it->second->area << ", Centroid=(" << it->second->centroid.x << ", " << it->second->centroid.y << ")" << endl;
    }
    cvNamedWindow( "Mod", CV_WINDOW_AUTOSIZE );
    cvShowImage( "Mod", src );  
    cvWaitKey(0);
        cvReleaseImage(&src);
        cvReleaseImage(&src_g);
        cvDestroyWindow("Image");
        return(0);
    }

}
我不知道应该是什么问题

在第一个答案中提到的更改之后,我得到一个链接器错误:(


要识别上面提到的函数,我应该放什么和放在哪里?(CMakeList或Makefile)?

代码中有两种输入错误,它们会导致这些错误: -IplImagesrc_g;-->应声明为指针 -unsigned int result=cvb::CvLabel(src_g,labelImg,blobs);-->

希望这有帮助,
TL

您的代码中有两种输入错误,它们会导致您出现以下错误: -IplImagesrc_g;-->应声明为指针 -unsigned int result=cvb::CvLabel(src_g,labelImg,blobs);-->

希望这有帮助,
TL

哦,上帝,你是对的,但是现在我有一个类似的问题,正如我在另一篇文章中提到的……我也加入了这个问题。嗨@Elod,关于链接:我设法链接到:`gcc main.cpp
pkg config--cflags opencv
-o test
pkg config cvblob opencv--libs
`。在t的末尾有--libs是一个很好的实践他在选项列表中说:你好,天哪,你是对的,但是现在我有一个类似的问题,正如我在另一篇文章中提到的……我也加入了这个问题。嗨@Elod,关于链接:我设法链接到:`gcc main.cpp
pkg config--cflags opencv
-o test
pkg config-cvblob opencv--libs
`--选项列表末尾的libs。注意,TL
home/rrg/OpenCV-2.4.3/release/bagDetect/main.cpp: In function ‘int main(int, char**)’:
/home/rrg/OpenCV-2.4.3/release/bagDetect/main.cpp:28: error: functional cast expression list treated as compound expression
/home/rrg/OpenCV-2.4.3/release/bagDetect/main.cpp:28: error: invalid cast from type ‘cvb::CvBlobs’ to type ‘cvb::CvLabel’
make[2]: *** [CMakeFiles/bag.dir/main.o] Error 1
make[1]: *** [CMakeFiles/bag.dir/all] Error 2
make: *** [all] Error 2
Linking CXX executable bag
CMakeFiles/bag.dir/main.o: In function `main':
main.cpp:(.text+0x103): undefined reference to `cvLabel'
main.cpp:(.text+0x134): undefined reference to `cvRenderBlobs'
collect2: ld returned 1 exit status