qq_41747698 2021-09-23 01:03 采纳率: 75%
浏览 141
已结题

c++ dll 类 摆脱头文件依赖opencv,有源码如何使用

现有一个依赖opencv的算法,类成员函数可实现输入输出,但参数中含有mat,private中含有net类型,头文件因此无法摆脱opencv依赖,问:现欲摆脱opencv的头文件和dll依赖,将该dll交付他人使用,是否可以做到将头文件写进cpp中,直接无头文件或者写个头文件接口直接dll和lib调用该类中的算法,以及修改接口中的私有变量参数

class _declspec(dllexport) ocr
{
private:
    int crop_mode = 1;
    int thresh_mode=1;
    int bitwise_mode2 = 0;
    double blur1 = 3;
    double blur2 = 11;
    //int rect_morph_x;
    //int rect_morph_y;
    int morph_x = 1;
    int morph_y = 9;
    int iteration = 1;
    int canny_max = 300;
    int min_width = 8;
    int i;//高斯模糊
    int flag;
    int flag2;
    string model_path = "./1.onnx";
    Net net;
    int rect_thresh = 0;
    int blocksize = 31;
    int C = 10;
    int a = 3;
    int c = 5;
    int b = -5;
    int d = 10;
    int softmax_thresh=0.9;

    
    //block,C,threshold

    //unsigned char * img


public:
    //void ~ocr(){}

    //inline
    void set_morph(int x, int y, int iter)
    {
        morph_x = x;
        morph_y = y;
        iteration = iter;
    }
    
    void set_blocksize(int x)
    {
        blocksize = x;
    }
    //inline
    void set_net(string model_path)
    {
        net = cv::dnn::readNetFromONNX(model_path);
    }

    void set_rect_thresh(int x)
    {
        rect_thresh = x;
    }


展开全部

  • 写回答

7条回答 默认 最新

  • orange4reg 2021-09-23 01:18
    关注

    都已经告诉过你了,你不使用的话,也没有其它办法了,隐藏其它依赖dll,确确实实只能那样做,如果你嫌动态加载资源中的dll麻烦,你也可以把资源里的dll偷偷的复制到system32那里。动态复制,就是dllmain执行的时候检查有没有OpenCV的相关dll,没有再复制过去。或者找OpenCV的源码一起编译进去是最好的啦。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
    qq_41747698 2021-09-23 01:54

    opencv我确实可以做成一个dll和一个lib应该也能用,但是请问下opencv的头文件引用的比较多难道也要拷贝吗,如果想用opencv直接加源码静态编译又是怎么做的呢

    回复
    qq_41747698 回复 qq_41747698 2021-09-23 01:57

    问了一下似乎还有一种是直接加opencv的静态库进去,直接生成dll这样可行吗

    回复
    orange4reg 回复 qq_41747698 2021-09-23 01:58

    不用管头文件,头文件只是用来编译,编译之后,查看你的dll引用了哪些OpenCV的dll,把这些dll添加到你的dll资源里面,dllmain的时候检查system32目录里有没有你所需的dll,有的话就不用复制,没有的话就从资源里复制过去。

    回复
    展开全部12条评论
查看更多回答(6条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 9月30日
  • 已采纳回答 9月23日
  • 修改了问题 9月23日
  • 创建了问题 9月23日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部