我試圖使用此功能:標識符在Opencv中找不到函數,如何解決這個問題?
fastNlMeansDenoising(圖像,圖像,3.0,7,21);
在Visual Studio 2010 Express中使用OpenCV,但它表示「找不到標識符」。 我做了一個快速搜索,發現這一定是「.lib」缺失,但是我沒有找到應該在我的項目中添加哪個庫以使此功能正常工作。任何人都可以幫助我呢?
我試圖使用此功能:標識符在Opencv中找不到函數,如何解決這個問題?
fastNlMeansDenoising(圖像,圖像,3.0,7,21);
在Visual Studio 2010 Express中使用OpenCV,但它表示「找不到標識符」。 我做了一個快速搜索,發現這一定是「.lib」缺失,但是我沒有找到應該在我的項目中添加哪個庫以使此功能正常工作。任何人都可以幫助我呢?
該功能在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,您將擁有所需的內容。
我的OpenCV文件夾中沒有該文件。我正在使用OpenCV 2.3。你知道我在哪裏可以找到它嗎? – U23r
好的。爲了使用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;
}
希望,這可以幫助你。 乾杯,
找不到標識符是編譯錯誤。 1.檢查庫頭文件是否在附加包含頭路徑中。 2.檢查是否在函數聲明所在的位置包含了所需的頭文件。 – Mahesh
1.已檢查! 2.我不知道這個函數需要的頭是什麼。 – U23r
ctrl-shift -f fastNlMeansDenoising – berak