在Mastering OpenCV with Practical CV Project书中的第一章 将图片变成素描的示例中,我尝试以下代码,OpenCV配置是没有问题的,因为我用一个demo示例将图片显示了出来,可下面这段代码始终运行不成功。opencv_imgproc249d.dll,opencv_highgui249d.dll,opencv_core249d.dll,cannot find or open PDB file,已经把百度上有关这个问题的前5页全部看了一遍,依旧没有解决...
下面是
/*main_desktop.cpp*/ #include "stdafx.h" #include #include #include #include #include #include #include #include "cartoon.h" using namespace std; using namespace cv; int main(int argc, char* argv[]) { int camerNumber = 1; if (argc > 1){ camerNumber = atoi(argv[1]); } cout<<"how are you"<
/*cartoon.cpp*/ #include "stdafx.h" #include "opencv2/opencv.hpp" #include "cartoon.h" using namespace cv; using namespace std; //void cartoonifyImage(IplImage* srcColor_img , IplImage* result_img){ void cartoonifyImage(Mat srcColor_img, Mat result_img){ /*测试该函数*/ result_img = srcColor_img; //cout << "how are you" << endl; ////IplImage转为Mat //Mat srcColor = srcColor_img; ////均值滤波器 //Mat gray; //cvtColor(srcColor, gray, CV_BGR2GRAY); //const int MEDIAN_BLUR_FILTER_SIZE = 7; //medianBlur(gray, gray, MEDIAN_BLUR_FILTER_SIZE); // ////拉普拉斯滤波器 //Mat edges; //const int LAPLACIAN_FILTER_SIZE = 5; //Laplacian(gray, edges, CV_8U, LAPLACIAN_FILTER_SIZE); ////阈值反转处理 //Mat mask; //const int EDGES_THRESHOLD = 80; //threshold(edges, mask, EDGES_THRESHOLD, 255, THRESH_BINARY_INV); // //result_img = mask; }
/*cartoon.h*/ using namespace cv; void cartoonifyImage(Mat a, Mat b); //void cartoonifyImage(IplImage* a, IplImage* b);
请正确配置,见图
图1:包含目录是指你#include的文件所处的目录。库目录是指所有lib文件所处的目录。
你的dll无法定位的问题,应该是下图没有配置好。
![](http://img.php.cn/upload/image/000/000/000/7c712786ff53df6ddaaa10de63f0df85-1.png)
图2:链接器-输入是指所有dll所在的目录,注意这个配置的release和debug需要的dll是不一样的,区别在版本249后有没有d这个字母。