OpenCv裡的一些基本函式,持續更新中。。。。。
轉自:http://blog.csdn.net/wangluomin/article/details/8802722
本文在作者使用opencv過程中會持續更新。
1. cvRNG: 隨機數生成器
CvRNG cvRNG( int64 seed); seed64-bit 的值用來初始化一個隨機序列函式 cvRNG ,初始化隨機數生成器並返回其狀態。指向這個狀態的指標可以傳遞給函式 cvRandInt, cvRandReal 和 cvRandArr .
- CvRNG rng;
- rng= cvRNG(cvGetTickCount());
- for (int i= 0;i<10;i++)
- {
- printf("%d/n",cvRandInt(&rng)%6);//如果%6出來的將會是0~255的正整數
- printf("%.2f/n",cvRandReal(&rng));
- }
- printf("Tick Frequency= %f/n",cvGetTickFrequency());
- system("pause");
- return 0;
CvRNG rng;
rng= cvRNG(cvGetTickCount());
for (int i= 0;i<10;i++)
{
printf("%d/n",cvRandInt(&rng)%6);//如果%6出來的將會是0~255的正整數
printf("%.2f/n",cvRandReal(&rng));
}
printf("Tick Frequency= %f/n",cvGetTickFrequency());
system("pause");
return 0;
1) cvGetTickCount()
返回64位長整數的時間資料,在OpenCV是為CvRNG設定的專用種子。
2) cvRNG()
跟一般的C語言srand()使用方法一樣,要先給它一個種子,但srand()用到的是unsigned int的32位種子範圍,而 cvRNG()用的是64位長整數種子。
3) cvRandInt()
返回均勻分佈32位的隨機數,均勻分佈為統計學上的專有名詞,表示長時間下所有數字出現的概率都是一樣的, 而cvRandint()在opencv裡使用的公式 temp = (uint64)(unsigned)temp*1554115554 + (temp >> 32);
4) cvRandReal()
返回均勻分佈,0~1之間的隨機小數,cvRandReal()的公式則是用
cvRandInt(rng)*2.3283064365386962890625e-10 的方法,其實就是cvRandInt(rng)*2^(-32),也就是將
cvRandInt()隨機出來的結果(32位除以2的三十二次方,因此,出現的結果將會是0~1之間的小數,也就是隨機0~1之 間。
2.IplImage* cvCloneImage
函式cvCloneImage製作影象的完整備份,包括頭、ROI和資料
格式
IplImage* cvCloneImage(const IplImage* image);
3.CvHistogram* cvCreateHist
CvHistogram* cvCreateHist( int dims, int* sizes, int type, float** ranges = NULL, int uniform = 1);
- dims: 直方圖的維數,灰度圖為1,彩色圖為3;
- *sizes: 直方圖裡面直放塊的個數;對於dims>1時,sizes是陣列,每個陣列元素表示不同維(dims)的直放塊個數。
- type: 直方圖的表示格式:CV_HIST_ARRAY意味著直方圖資料表示為多維密集陣列 CvMatND;CV_HIST_TREE 意味著直方圖資料表示為多維稀疏陣列 CvSparseMat.
- ranges: 圖中方塊範圍的陣列。如果uniform不為0 ,則ranges[i] ( 0<=i<dims )是包含兩個元素的範圍陣列,包括直方圖第i維的上界和下界。在第i維上的整個區域 [lower, upper]被分割成sizes[i]個相等的塊(sizes[i] 表示直方圖第i維的塊數)
函式cvCreateHist建立一個指定尺寸的直方圖,並且返回建立的直方圖的指標。如果陣列的ranges是0,則直方塊的範圍必須由函式cvSetHistBinRanges稍後指定。
void cvCalcHist(IplImage** image, CvHistogram* hist, int accumulate = 0, const CvArr* mask =NULL );
4. cvSetImageROI(IplImage* image, CvRect )
在設定影象的ROI之後,對影象所有的操作都在針對ROI區域的,而且座標是從ROI區域開始算起的。影象的尺寸也隨著變為ROI的尺寸。但是要注意一點:
IplImage* image->width 表示的是原影象的寬度,而非ROI的。若能正確表示ROI區域的尺寸,要用cvGetSize(image),這樣得到的就是ROI的尺寸啦。
相關文章
- PHP的常用函式 持續更新PHP函式
- 前端常用的工具類函式, 持續更新中前端函式
- [持續更新]——關於C++的一些可能會常用的函式C++函式
- 【 一些網址,持續更新中….. 】
- Python3常用函式速查【持續更新】Python函式
- 一些常用的命令(持續更新)
- 【少用會忘】PHP 函式筆記(持續更新)PHP函式筆記
- 前端面試的一些題目(持續更新中)前端面試
- Elasticsearch 的一些常見疑問(持續更新中)Elasticsearch
- 持續記函式函式
- Python中列表、元組、字典、集合與字串,相關函式,持續更新中……Python字串函式
- 前端開發中遇到的一些問題----持續更新前端
- 一些Linux shell命令 - 持續更新Linux
- git使用、持續更新中Git
- 一些有點奇怪的知識(持續更新)
- Docker實踐過程中遇到的一些問題總結(持續更新中)Docker
- 專案裡的一些小函式函式
- SAP Commerce(原Hybris)的一些架構圖,持續更新架構
- JVM(持續更新。。。)JVM
- FastApi持續更新ASTAPI
- 彙編筆記(持續更新中)筆記
- Spring面試題(持續更新中)Spring面試題
- JiaoZiVideoPlayer使用說明(持續更新中...)IDE
- clion小白使用技巧(持續更新中)
- .NET6中一些常用元件的配置及使用記錄,持續更新中。。。元件
- 一些JavaSE學習過程中的思路整理(主觀性強,持續更新中...)Java
- PHP常用函式歸類【持續整理】PHP函式
- opencv中的exp32f函式OpenCV函式
- 資料分析中常用小函式彙總【持續更新,個人筆記。。。】函式筆記
- Android Java開發中一些唬人的常用關鍵字用法,持續更新中。。。AndroidJava
- ES5和ES6中的一些綜合應用(持續更新)
- 常見 git 需求整理(持續更新中)Git
- springMVC簡單demo集合(持續更新中……)SpringMVC
- 日常工作筆記(持續更新中。。)筆記
- 被oracle搞死的部分語句(持續更新中)Oracle
- 我的Android開發框架Collection(持續更新中)Android框架
- OpenCV中的findContours函式引數詳解OpenCV函式
- Blender 雕刻 持續更新
- Xcode 技巧 持續更新XCode