OpenCV学习

注:VC15 -Visual Studio 2017

       VC14 -Visual Studio 2015

Windows下VS中配置OpenCV C++开发环境:
   头文件 + dll动态库
   0.github上下载opencv的 VC14-15.exe(其实是个压缩包)
   1.新建VC++空项目,把项目改成x64的 //选择'空项目'
   2.配置环境变量, 添加  D:\Study\OpenCV\OpenCV3.4.3-vc\opencv\build\x64\vc15\bin
   3.配置头文件包含目录: "配置属性->VC++目录->包含目录" 下添加 xxx/opencv/build/include
   4.配置库目录: "配置属性->VC++目->库目录" 下添加: xxx/opencv/build/x64/vc15/lib
   5.配置链接器: 用于指定到底是哪个dll; "配置属性->链接器->输入->附加依赖项" 下添加 "opencv_world340d.lib"  (只要一个名字够了//340d表示3.4版本的debug版; 目录在opencv\build\x64\vc15\lib下
   6.有个别系统在System32目录下,OpenCV所依赖的库可能不匹配,需要手动添加放到System32目录下:
      有6个,哪个没有就拷贝过去: concrt140d.dll、msvcp140d.dll、opencv_ffmpeg310_64.dll、opencv_world340.dll、opencv_world340d.dll、ucrtbased.dll

Android下的OpenCV开发:
  有三种运行起来的方式
   1.Manager APK运行 + Eclipse的Android项目  //进程调用,实际应用中不可行
   2.OpenCV封装好的Java Package + so //直接使用封装好的java类
   3.jni + include + so库  //以这种方式最可取
   
 Android Studio下的Android Native(C++)工程下配置OpenCV
   也是配置 头文件 + so动态库 
   0.下载opencv-3.4.13-android-sdk.zip,解压出来;
   1.拷贝头文件: 从xxxx\OpenCV-android-sdk\sdk\native\jni\include下的opencv和opencv2目录, 拷到项目
      xxxx\app\src\main\cpp目录下;
     //注:#include中导入opencv头文件时, CMakeLists.txt中默认的是到app目录,会找不到include目录,要不
   2.添加so库:
         先在xxx/app/libs下新建目录,以ABI命名,如: arm64-v8a ;
         现把xxx/OpenCV-android-sdk\sdk\native\libs\arm64-v8a下的libopencv_java3.so, 拷到上面创建的目录下
         
   3.CMakeLists.txt中添加一个链接

OpenCV API :
 nameWindow(,) : 创建窗囗(OpenCV自动创建和释放)
 cv::imread(,) : //IMREAD_UNCHANGED(<0) | IMREAD_CRAYSCALE(0) | IMREAD_COLOR(>0)
    加载图像文件成为一个Mat对象,第二个参数缺省时默认是IMREAD_COLOR,即RGB
 cv::cvtColor(,,) //转换色彩空间,有HLS,HSV等
 cv::imwrite  //保存图像
 
 真彩色,是在RGB色彩空间里
 在其他的色彩空间中(如Ycbr中),亮度、饱和度、色泽度分别在单独一个通道里的,方便操作
 
 CV_Asset(myImage.depth()==CV_8U); 
 获取图像像素指针: mat.ptr<uchar>(row);
 const uchar * current = myImage.ptr<uchar>(row); //当前行指针
 p(row,col) = current[col]  //当前像素点P(row,col)的像素值p(row,col);
 像素范围处理:saturate_cast<uchar>() :确保获取的像素范围在0-255,
 矩阵的掩膜操作:实现图像对比度提高,重新计算每个像素的像素值,掩膜mask,称为kernel
 
 Mat对象与IplImage:
  Mat是OpenCV2.0引进的图像数据结构,自动分配内存,不存在内存泄漏,是OOP的数据结构,分为头部的数据部分 
  IplImage是2001年OpenCV发布后一直存在,是C语言风格的数据结构,需要开发者自己分配和管理内存,容易导致内存泄漏问题。

 Haar特征介绍(Haar-like features)
    高类间变异性
    低类内变异性
    局部强度差
    不同尺度  : 2x2,4x4,8x8,16x16,24x24等
    计算效率高

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值