標籤:
建立一個c++庫項目
pro檔案
#-------------------------------------------------## Project created by QtCreator 2014-12-29T16:10:53##-------------------------------------------------QT -= core guiTARGET = dlldemoTEMPLATE = libCONFIG += staticlibSOURCES += dlldemo.cppHEADERS += dlldemo.hINCLUDEPATH += D:/sdk/opencv/build/includeLIBS += -LD:/sdk/opencv/build/x86/vc12/lib -lopencv_calib3d249d -lopencv_contrib249d -lopencv_core249d -lopencv_features2d249d -lopencv_flann249d -lopencv_gpu249d -lopencv_highgui249d -lopencv_imgproc249d -lopencv_legacy249d -lopencv_ml249d -lopencv_nonfree249d -lopencv_objdetect249d -lopencv_ocl249d -lopencv_photo249d -lopencv_stitching249d -lopencv_superres249d -lopencv_ts249d -lopencv_video249d -lopencv_videostab249dunix { target.path = /usr/lib INSTALLS += target}
dlldemo.h
#ifndef DLLDEMO_H#define DLLDEMO_H#include <iostream>#include <fstream>#include <sstream>#include <string>#include <vector>#include <opencv2/objdetect/objdetect.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/core/core.hpp>using namespace std;using namespace cv;class Dlldemo{public: Dlldemo(); int addtwo(int a,int b); Mat togray(Mat img); void draw_text(cv::Mat &canvas, const char *str, int x, int y, float scale = 1.0);};#endif // DLLDEMO_H
dlldemo.cpp
#include "dlldemo.h"Dlldemo::Dlldemo(){}int Dlldemo::addtwo(int a, int b){ return a+b;}Mat Dlldemo::togray(Mat img){ cv::Mat greyMat; cv::cvtColor(img, greyMat, CV_BGR2GRAY); draw_text (greyMat,"#by dll function", 5, 30,0.8); return greyMat;}void Dlldemo::draw_text(Mat &canvas, const char *str, int x, int y, float scale){ int w = 2; for(int dy = -w; dy <= w; ++dy) { for (int dx = -w; dx <= w; ++dx) { cv::putText(canvas, str, cv::Point(x+dx,y+dy), cv::FONT_HERSHEY_SIMPLEX, scale, cv::Scalar(0,0,0), 2, CV_AA); } } cv::putText(canvas, str, cv::Point(x,y), cv::FONT_HERSHEY_SIMPLEX, scale, cv::Scalar(255,255,255), 2, CV_AA);}
build--->產生
測試
建立一個c++工程
拷貝dlldemo.h 和dlldemo.lib
修改pro檔案
LIBS += -LD:/project/testdlldemo -ldlldemoINCLUDEPATH += D:/sdk/opencv/build/includeLIBS += -LD:/sdk/opencv/build/x86/vc12/lib -lopencv_calib3d249d -lopencv_contrib249d -lopencv_core249d -lopencv_features2d249d -lopencv_flann249d -lopencv_gpu249d -lopencv_highgui249d -lopencv_imgproc249d -lopencv_legacy249d -lopencv_ml249d -lopencv_nonfree249d -lopencv_objdetect249d -lopencv_ocl249d -lopencv_photo249d -lopencv_stitching249d -lopencv_superres249d -lopencv_ts249d -lopencv_video249d -lopencv_videostab249d
測試代碼main.cpp
#include <iostream>#include "dlldemo.h"using namespace std;int main(){ cout << "Hello World!" << endl; int a=10; int b=20; Dlldemo dll; printf("sum of a,b is :%d",dll.addtwo (a,b)); cv::Mat canvas; canvas = cv::imread("d://nike.jpg", -1); Mat result= dll.togray (canvas); imshow ("dll result",result); waitKey (); return 0;}
成功
源碼下載
http://pan.baidu.com/s/1kT7QBbx
製作動態連結程式庫給opencv程式使用(使用QtCreator)