gpt4 book ai didi

c++ - 这是命名空间问题吗

转载 作者:行者123 更新时间:2023-11-27 23:14:13 25 4
gpt4 key购买 nike

这是我的代码,我从这个 link 得到的

    int main(int agrc, char **argv)
{
HaarClassifierCascade *p = 0;
MemStorage *pstore = 0;
Seq *Faceseq;
int i;

Mat test_sample = imread("1.jpg");
pstore = CreateMemStorage(0);
p = (HaarClassifierCascade *)Load(("/home/itachi/opencv-2.4.6/data/haarcascades/haarcascade_frontalface_default.xml"),0,0,0);
if( !test_sample || !pstore || !p)
{
printf("Initialization failed : %s \n",(!test_sample)? "didn't load image file" : (!p)? "didn't load Haar cascade --" "make sure path is correct" : "failed to allocate memory for data storage");
exit(-1);
}

Faceseq = HaarDetectObjects(test_sample,p,pstore,1.1,3,CV_HAAR_DO_CANNY_PRUNING,Size(0,0));
NamedWindow("Haar Window", CV_WINDOW_AUTOSIZE);

for(i=0;i<(Faceseq? Faceseq->total:0);i++)
{
Rect *r = (Rect*)GetSeqElem(Faceseq,i);
Point pt1 = { r->x, r->y };
Point pt2 = { r->x + r->width, r->y + r->height };
Rectangle(test_sample,pt1,pt2,CV_RGB(0,255,0),3,4,0);
}
ShowImage("Haar Window", CV_WINDOW_AUTOSIZE);
WaitKey(0);
DestroyWindow("Haar Window");

ReleaseImage(test_sample);
if(p) ReleaseHaarClassifierCascade(&p);
if(pstore) ReleaseMemStorage (&pstore);
}

我正在我最近安装 opencv 的新系统中尝试这段代码。以前,在我的旧系统中使用时,我通常使用像 ShowImage 这样的函数,但前面没有 cv 标签。但编译此代码时出现以下错误:

    facedetecthaar.cpp:28:91: error: ‘HaarDetectObjects’ was not declared in this scope
facedetecthaar.cpp:29:47: error: ‘NamedWindow’ was not declared in this scope

还有很多类似的。如果我在这些函数前面添加 Cv ,它就没问题了。为什么需要这样做?这是命名空间不起作用的问题吗?请在这里帮助我。这是我的生成文件:

    LIBS=`pkg-config --libs opencv`
INCLUDE=`pkg-config --cflags opencv`



Facedetect: facedetecthaar.o
g++ $^ -o $@ $(LIBS)

facedetecthaar.o: facedetecthaar.cpp
g++ -c $^ $(INCLUDE)

最佳答案

用这个代替 showImage这很容易

// Open the window
cv::namedWindow("foo");

// Display the image m in this window
cv::imshow("foo", m);

而且函数前的cvxxxx_xxx是函数名的一部分,不应该去掉。

所有这些以 cv 开头的功能都是旧的,并且在新版本的 openCV 中有所有这些功能的替代品,在某些情况下甚至更快。

你可以在这里看到完整的差异:

http://opencv.willowgarage.com/documentation/index.html打开CV 2.0

http://docs.opencv.org/index.html打开CV 2.4

关于c++ - 这是命名空间问题吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17783810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com