zoukankan      html  css  js  c++  java
  • opencv新手注意

    注意事项 

    1 看如下代码:

     CvScalar s = cvScalar(20.0);

    由于opencv不是真正的类,因此构造函数和类名不一致,构造函数的首字母是小写的!!!!!
    opencv乃是用C写的,因此尽管含有类的思想,但是不是类,而是结构,
    不是构造函数,而是内联函数。注意字母的大小写~


    2 如果仅是采用opencv而使用C语言编写程序,注意变量的定义在C语言中只能在每一个函数的开头,不能像C


    ++一样在函数的任何位置都可以定义变量~


    3 既然C++是基本完全兼容C的,而C++类的特性又十分适合编写大型的程序,完全可以用C++来编写程序,只需


    新建文件的时候文件后缀名改为.CPP即可。




    4 在受用opencv的函数时,一定要注意各个参数是否一致。本人在使用trackbar时由于window的名差一个字母


    ,半天才调对啊~


    5 opencv中也存在一个很重要的类:cvImage


    6学习OpenCV的三种境界:
    (1)乘客级。不会造飞机,会坐飞机也行。将刘、于书中的代码跑一遍;
    (2)厨师级。吃自助餐。把OpenCV当成菜或佐料,自己烹调;
    (3)天师级。做张天师,这时OpenCV不过是一个披着画皮的女鬼。


    7高斯背景建模,在光线可控并且摄像头不懂物体动时使用。否则最好不要使用。


    8 opencv访问图像数据的方式
    unsigned char * ptr;
    for(int i = 0 ;i < img->height;i++){
    ptr= (unsigned char*)img->imageData+ i*img->widthStep;
    for(int j = 0 ; j< img->width; j++){
    *(ptr+3*j) -= 20;
    *(ptr + 3* j+1) -= 20;
    *(ptr + 3*j +2) -= 20;
    }
    }
     再强大的库,也不能覆盖所有的功能,如此对图像数据的访问就是个关键,程序写到深处必然要自己编写算


    法,这时就必须去访问图像中的数据。opencv中图像数据的访问主要就是基于指针。
    由于上述for循环的使用频率很高,因此这里重点关注了一下。


    9 原理与库调用
    虽然调用库很方便,但是要想灵活运用opencv的库,不懂原理是很困难的。最好学会自己去实现一些基本的算


    法,如此才能灵活运用。
  • 相关阅读:
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
  • 原文地址:https://www.cnblogs.com/libing64/p/2878748.html
Copyright © 2011-2022 走看看