0

我試圖使用此功能:標識符在Opencv中找不到函數,如何解決這個問題?

fastNlMeansDenoising(圖像,圖像,3.0,7,21);

在Visual Studio 2010 Express中使用OpenCV,但它表示「找不到標識符」。 我做了一個快速搜索,發現這一定是「.lib」缺失,但是我沒有找到應該在我的項目中添加哪個庫以使此功能正常工作。任何人都可以幫助我呢?

+1

找不到標識符是編譯錯誤。 1.檢查庫頭文件是否在附加包含頭路徑中。 2.檢查是否在函數聲明所在的位置包含了所需的頭文件。 – Mahesh

+0

1.已檢查! 2.我不知道這個函數需要的頭是什麼。 – U23r

+0

ctrl-shift -f fastNlMeansDenoising – berak

回答

0

你將不得不使用opencv 2.4.9,它在2.3.0中不可用

+0

謝謝。我更新了並且工作。 – U23r

1

該功能在photo.hpp文件中定義。所以,你必須得到opencv_photo300.lib

編輯1:

我搜索一點點(在工作抱歉IM,不要有更多的時間),我無法找到庫本身。你可以繼續自己構建opencv:https://github.com/Itseez/opencv 然後,你可以搜索該文件夾的lib。 的構建過程installationguide是在這裏:http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_install/windows_install.html

編輯2:

Berak是正確的,opencv_photo300.lib不是在OpenCV中的2.3版本。將您的OpenCV更新至當前版本2.4.9,您將擁有所需的內容。

+0

我的OpenCV文件夾中沒有該文件。我正在使用OpenCV 2.3。你知道我在哪裏可以找到它嗎? – U23r

2

好的。爲了使用fastNlMeansDenoising(image, image, 3.0, 7, 21);

1)您需要配置opencv 2.4.8或2.4.9。

這是使用Visual Studio的link opencv 249的過程。

2)使用下面的代碼來測試OpenCV的功能

#include <iostream> 
#include <opencv2/opencv.hpp> 
#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/imgproc/imgproc.hpp> 

using namespace std; 
using namespace cv; 

int main() 
{ 
    // load the image 

    Mat img = imread("lenna.jpg"); 


    if(!img.data) 
    { 
     cout << "File not found" << endl; 
     return -1; 
    } 

    // show it in a window 
    namedWindow("Image", WINDOW_AUTOSIZE); 
    imshow("Image", img); 

    // image window will immediately disappear if the program ends, so 
    // we'll wait for a keypress, indefinitely 
    waitKey(); 

    // do a simple transformation: convert to grayscale 

    // first copy the image 
    Mat img_gray = img.clone(); 
    Mat img1; 
    cvtColor(img, img_gray, CV_RGB2GRAY); 
    fastNlMeansDenoising(img_gray,img1,3.0,7,21); 
    imshow("Image", img1); 
    waitKey(); 
    return 0; 
} 

希望,這可以幫助你。 乾杯,

相關問題