zoukankan      html  css  js  c++  java
  • 视觉(4)一个简单易用的openCV封装类

    https://files.cnblogs.com/cutepig/CVClass.rar
    最近一直用opencv编程序,功能很强大,有些时候却不大方便,比如图像IplImage,矩阵CvMat,以及CvSe等的内存申请和释放都需要自己维护,程序员的负担比较重,一不小心还会导致内存泄漏等。
    后来看到一个叫做blepo的函数库,这个库将矩阵和图像的处理封装的比较好,写起来程序感觉根matlab似的,但是这个库比较庞大,有很多和openCV重复的函数,如果和opencv同时使用总感觉不方便。今天便自己写了一个基于opencv的轻量级的c++库。现在对图像,矩阵,CvSeq有了简单的封装.

    设计原则:
    1.易用:第一是使用户避免直接为图像和矩阵分配和释放内存;第二是对于矩阵,图像处理,能以类似于matlab的方式写程序,这么做也方便了matlab函数向c++的迁移。比如对于矩阵可以这么写
    HMatDbl m=m1+m2*m3-Inv(m4)*Transpose(m5);
    2.在易用的基础上尽量兼顾效率。
    3.能够尽可能方便的调用已有的opencv的函数。这一点主要是通过重载IplImage *和CvMat *和void *来实现的,可以实现几乎透明的调用cvXX等类似的函数。
    一点感受:
    1.重载+,-,*,/,=等运算符时需要同时重载拷贝构造函数,析构函数(一般需要释放内存)。这个问题折磨了我好长时间,后来挑了半天才找到原因:唉,基础不扎实。。。
    2.以后打算进一步完善,增加blobAnalysys(对应contours)相关函数

  • 相关阅读:
    drf的模型基表与10个单群操作方法
    drf的序列化组件
    drf之请求模块,渲染模块,解析模块,响应模块,异常模块
    drf之接口与接口规范
    MongoDB C# Demo
    如何用Dome4j(2.2.1)创建Xml
    Map、Set的基本概括
    如何自定义xml文件
    HashMap和HashTable的理解与区别
    装箱 拆箱
  • 原文地址:https://www.cnblogs.com/cutepig/p/794071.html
Copyright © 2011-2022 走看看