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)相关函数

  • 相关阅读:
    人人开源框架学习笔记
    Gitea安装笔记
    使用sdk方式获取微信的用户信息
    重写java类的equals()和hashCode方法
    Mysql 实现分页功能
    位运算应用和解析
    java代码POST方式请求SOAP
    java实现文件拷贝
    动态创建线程(多线程)处理大量数据
    ActiveMQ监听者接收信息
  • 原文地址:https://www.cnblogs.com/cutepig/p/794071.html
Copyright © 2011-2022 走看看