1. 程式人生 > >Histogram中各個引數詳解

Histogram中各個引數詳解

histogram從不會到理解的過程:

1.我想先從讀取histogram的bins的方法說起.(Mat hist,假設已經過calchist())

     首先 Mat型別的hist,他的維數是dims的,這就決定了,Mat hist中每個bins的存放形式.如果dims=1,則hist就是一個一維的陣列,訪問的時候,就for(inti=0;i<bins;++i) ,順序訪問hist.at<float>(i) ,畫圖的時候就要把float轉化為int,使用cvRount()即可;

    因此,對於dims=2,二維的hist,Mat hist 就是一個二維的矩陣,每個點對應一個(bins_1,bins_2)的值,訪問的時候就用一個兩層

用矩形表示吧,個人理解

2.談一下calchist(),直方圖計算函式

void calcHist(const Mat* images, int nimages, const int* channels, InputArray mask, SparseMat& hist,                                   int dims, const int* histSize, const float** ranges, bool uniform=true, bool accumulate=false)

(1)images:是一個影象陣列,所以傳參的時候,要傳一個地址(一幅圖用&src,多幅圖的話,放在陣列中,傳入陣列名)

(2)nimages:就是上一個中的影象總數

(3)channels:用來計算直方圖的通道維數陣列,第一個陣列的通道由0到arrays[0].channels()-1列出,第二個陣列的通道從arrays[0].channels()到arrays[0].channels()+arrays[1].channels()-1以此類推;(其實不太懂什麼意思,求教)

(4)mask:一個掩碼,用來選擇影象中參與hist統計的畫素,0表示參加計算.一般用Mat(),表示全部參與

(5)hist,直接傳入即可(為傳引用,也不用取地址),經計算後變成一個dims維的矩陣

(6)dims,維數  CV_MAX_DIMS

==32,最大的

(7)histSize,就是每一維的bins的個數,也要傳入地址 eg.二維的int histSize={bins_1,bins_2};

(8)ranges 對於均勻直方圖(即nuiform==true),ranges是一個由dims個float數對構成的陣列,數對錶示對應維的bin的範圍.  eg.某維有N==2個bins,在ranges中對應的數對為{0,10},均勻的意思是講,將該維的bin均勻的非為N==2個區間:[0,5]和[5,10],這是程式自動劃分的,只需提供給他數對錶示最值範圍即可.

   對於非均勻的直方圖,ranges的組成元素就不在是簡單的數對了,而是一個個子陣列,每個陣列還有N+1個元素(N為該維的bin的數量),這N+1個元素將表示怎樣對bin進行非均勻的劃分.    eg.某維N==4個bins,ranges中對應的字陣列為5個元素{0,2,4,9,10},非均勻的意思就是講,講該bin劃分為非均勻區間[0,2],[2,4][4,9].[9,10]. 

  然後根據區間統計落在每個區間中的數量,從而計算出直方圖.

(9)nuiform是否均勻,對應ranges中元素的不同表示.如上.

(10)accumulate一般為false,為TRUE時,在calchist中給hist分配記憶體時hist不會被清除,從而可以將多幅圖的直方圖統計到一個hist矩陣中.  或者有利於及時的更新直方圖(不懂什麼意思).

 

相關推薦

Histogram各個引數

histogram從不會到理解的過程: 1.我想先從讀取histogram的bins的方法說起.(Mat hist,假設已經過calchist())      首先 Mat型別的hist,他的維數是dims的,這就決定了,Mat hist中每個bins的存放形式.如果dim

struts2 配置檔案各個

<action   name= "Login_* "   method= "{1} "   class= "mailreader2.Login "> 中Login_*帶*是什麼意思?method= "{1} "帶{}這個是什麼意

FFMPEG進階系列03-ffmpeg轉碼專題()x264引數

概述 x264編碼引數簡介 版本 x264.exe --fullhelp 列印 x264 core:152 r2851 ba24899 Syntax: x264 [options] -o outfile infile Presets(預設) 用於簡化命令列而

ehcache各個引數

-----------------------------------------快取設定大小-------------------------------------------------------- 快取大小的限制可以設定在CacheManager上,也

struts2result引數

1.result中name的引數: SUCCESS:Action正確的執行完成,返回相應的檢視,success是name屬性的預設值;   NONE:表示Action正確的執行完成,但並不返回任何檢視;  ERROR:表示Action執行失敗,返回到錯誤處理檢視;   I

caffe網路結構引數

prototxt檔案是caffe的配置檔案,用於儲存CNN的網路結構和配置資訊。prototxt檔案有三種,分別是deploy.prototxt,train_val.prototxt和solver.prototxt。 1. solver.prototxt solver.prototxt是caffe的配置檔

JNI原生函式JNIEnv引數

JNIEXPORT jstring JNICALL Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv *env,jobject thiz) 原生程式碼通過JNIEnv介面指標提供的各種函式來使

關於background-size各個引數

今天公司的要做一個名叫夢幻戀舞的webapp,在設定背景圖的時候,明明已經把整個區域的高寬設定成100%了,但是背景圖總不能全覆蓋整個網頁。考慮使用background-size這個屬性,在用的時候發現background-size還有好多值,這邊特地找一下學習一下。 屬

Flask傳遞引數

1.get請求  request.args.get("key") 獲取get請求引數 2.post請求 request.form.get("key", type=str, default=None) 獲取表單資料 request.values.get("key") 獲取

cookie各個引數

第三個:expire,可選引數,這個是用來設定cookie變數儲存的時間,注意是我們設定的的UNIX時間戳減去當前的UNIX時間戳才是cookie變數儲存的時間。(UNIX時間戳:是從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數),一般我們可以通過time()函式獲取當前的UNIX時間戳,再加上

user-agent各個引數

最近在研究ua資訊,現在總結一下ua資訊各個引數代表的意思以及哪些引數可以修改,哪些可以刪除 現在,隨便拿出一個ua, Mozilla/5.0 (Linux; U; Android 7.0;m2 note Build/LMY47D) AppleWebKit/604.1.3

mysql JDBC URL格式各個引數

mysql JDBC URL格式如下: jdbc:mysql://[host:port],[host:port].../[database][?引數名1][=引數值1][&引數名2][=引數值2]... 現只列舉幾個重要的引數,如下表所示: 引數名稱

ThreadPoolExecutor引數

1. ThreadPoolExecutor資料成員 1 Private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING,0));

C++陣列引數

// 引數為10個int的陣列// parameter is a reference to an array of 10 intsvoid putValues(int (&arr)[10]);int main(){    int i, j[2];    int a[10];    putValue

react native TextInput各個引數,內含事例動圖

TextInput 文字輸入框 React Native中的文字輸入框使用和iOS比較相近,可能是因為 RN 首先封裝iOS端的緣故(這點對iOS開發者來說是個好訊息) TextInput也是繼承自 View,所以 View 的屬性 TextInput 也能使用,一些樣式類

Struts1 Action各個屬性

Struts中Action的屬性詳解  轉 attribute:指定ActionForm儲存到指定上下文所使用的屬性名,如果不指定attribute屬性值, 將使用name屬性值作為儲存時的屬性名。即attribute的預設值就是name屬性值。 input: 該Act

學習筆記--JDK的URLConnection引數

JDK中的URLConnection引數詳解 針對JDK中的URLConnection連線Servlet的問題,網上有雖然有所涉及,但是隻是說明了某一個或幾個問題,是以FAQ的方式來解決的,而且比較零散,現在對這個類的使用就本人在專案中的使用經驗做如下總結:  1:>

linuxmount命令引數 nfs 引數

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

vue-cli生成的模板各個檔案(轉) vue-cli腳手架webpack配置基礎檔案

vue-cli腳手架中webpack配置基礎檔案詳解 一、前言 原文:https://segmentfault.com/a/1190000014804826 vue-cli是構建vue單頁應用的腳手架,輸入一串指定的命令列從而自動生成vue.js+wepack的專案模板。這其中webpack發揮了很大

ajaxerror函式引數

xhr.status和error函式中的status是不一樣的,error函式中的status主要包括:"success"、"notmodified"、"error"、"timeout"、"parsererror",而xhr.status如下所講。   一