使用Opencv的一些注意事项
這是我網上轉載的一篇使用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的庫,不懂原理是很困難的。最好學會自己去實現一些基本的算法,如此才能靈活運用。
總結
以上是生活随笔為你收集整理的使用Opencv的一些注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机html滚动原理,手机滚动-如何实现
- 下一篇: 腐蚀膨胀等形态学处理c代码