2013-05-10 131 views
1

我试图使用OpenCV中的inpaint功能“在此范围内没有宣布”,但我得到这个错误功能补绘

loadimg.cpp: In function 'int main(int, char**)': 
loadimg.cpp:19:28: error: 'INPAINT_TELEA' is not a member of 'cv' 
loadimg.cpp:19:45: error: 'inpaint' was not declared in this scope 

从打字:

C:\Users\Francesco\Desktop\prova>g++ -I"C:\opencv\build\include" 
-L"C:\opencv\build\x86\mingw\lib" loadimg.cpp -lopencv_core245 -lopencv_highgui245 
-lopencv_img proc245 -o loadimg 

这是我的代码:

#include "opencv2/highgui/highgui.hpp" 
#include "opencv2/imgproc/imgproc.hpp" 
#include <opencv/cv.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <iostream> 

using namespace cv; 
using namespace std; 

int main(int argc, char** argv) 
{ 

    Mat src = cv::imread("prova.jpg"); 
    Mat mask; 
    cvtColor(src, mask, CV_RGB2GRAY); 
    threshold(mask, mask, 220, 255, CV_THRESH_BINARY); 
    Mat dst; 
    inpaint(src, mask, dst, 1, cv::INPAINT_TELEA); 
    imshow("image", dst); 
    waitKey(0); 

    return 0; 
} 

任何人都可以帮我吗?非常感谢你。

回答

3

cv::inpaint()photo模块中声明。您需要#include <opencv2/photo/photo.hpp>。或者,您可以使用#include <opencv2/opencv.hpp>,其中包含OpenCV的所有功能。

+0

谢谢。它工作正常。 – user2277798 2013-05-10 15:29:42

1

尝试:

inpaint(src, mask, dst, 1, INPAINT_TELEA); 

此外,包括:opencv2 /照片/ photo.hpp