製作動態連結程式庫給opencv程式使用(使用QtCreator)

來源:互聯網
上載者:User

標籤:

建立一個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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.