首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >函数inpaint“未在此作用域中声明”

函数inpaint“未在此作用域中声明”
EN

Stack Overflow用户
提问于 2013-05-10 23:13:32
回答 2查看 3.3K关注 0票数 1

我正在尝试使用opencv中的inpaint函数,但是我得到了这个错误

代码语言:javascript
运行
复制
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

通过键入以下内容:

代码语言:javascript
运行
复制
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

这是我的代码:

代码语言:javascript
运行
复制
#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;
}

有谁可以帮我?非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-10 23:18:30

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

票数 3
EN

Stack Overflow用户

发布于 2013-05-10 23:17:52

尝试:

代码语言:javascript
运行
复制
inpaint(src, mask, dst, 1, INPAINT_TELEA);

另外,还包括:opencv2/photo/photo.hpp

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16485459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档