博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
opencv新手注意
阅读量:4674 次
发布时间:2019-06-09

本文共 1047 字,大约阅读时间需要 3 分钟。

注意事项 

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的库,不懂原理是很困难的。最好学会自己去实现一些基本的算
法,如此才能灵活运用。

转载于:https://www.cnblogs.com/libing64/archive/2011/11/29/2878748.html

你可能感兴趣的文章
HashMap实现缓存
查看>>
javax.persistence.TransactionRequiredException: Executing an update/delete query
查看>>
Gym 100733G No Negations
查看>>
C++ 编写的DLL导出的函数名乱码含义解析
查看>>
python的setup.py文件及其常用命令
查看>>
JavaScript中的事件循环
查看>>
花花的礼物 (huahua)
查看>>
AssetBundle
查看>>
JS对象 字符串分割 split() 方法将字符串分割为字符串数组,并返回此数组。 语法: stringObject.split(separator,limit)...
查看>>
PHP加密解密函数之Base64
查看>>
PHP加密解密函数之Crypt
查看>>
BZOJ2259 [Oibh]新型计算机
查看>>
java step1:基础知识1
查看>>
PHP设置时区
查看>>
[ZJOI2008]骑士
查看>>
SPFA求最短路——Bellman-Ford算法的优化
查看>>
spring实战三装配bean之Bean的作用域以及初始化和销毁Bean
查看>>
修复python命令行下接收不到参数的问题
查看>>
PostgreSQL在何处处理 sql查询之六十二
查看>>
怎样从Mysql官网下载linux版本的mysql安装包
查看>>