今天上午,需要查看opencv的cvColor函數的原始碼,之前雖然經常使用opencv庫來做一些映像相關的處理,但是並沒有查看過opencv的原始碼,經過一些尋找,主要有下面的兩種方法:
1. 使用cmake。我們知道,我們在官網上下載的完整版的opencv一般會有build和sources兩個檔案夾,如果我們僅僅是要使用opencv庫,那麼build檔案夾足矣。而如果是要查看opencv的原始碼,則需要sources檔案夾,但是sources檔案夾中只是一些零散的檔案,用Visual Studio隨便開啟一個.cpp檔案,隨便選擇一個函數點擊右鍵,發現並不能“查看定義”,原因在於:所有的源檔案之間還沒有建立聯絡,即還沒有建立工程檔案,而cmake就是來做這樣一件事情的。具體的可以參考下面的這篇博文: link;
2. 使用opencv官網+Visual Studio的方式。
第2種方法是我接下來要著重介紹的,有時候,我們懶得去使用cmake,或者,我們在使用別人的電腦,只是突然之間靈光一閃,想要看一看一個函數的源碼,下面,我以查看cvCanny這個函數的原始碼為例,按照下面的步驟來進行(電腦上需要有opencv的sources檔案夾以及Visual Studio或者相似功能的IDE):
1. 首先,確定cvCanny函數所在的模組。如果你已經知道cvCanny函數位於opencv的imgproc模組,那麼可以忽略此步驟,如果不知道,則可以通過opencv的官網查看cvCanny函數所在的模組:
開啟opencv官網——DOCUMENTATION——REFERENCE——搜尋cvCanny關鍵字
可以搜尋到下面的內容:
然後點擊搜尋到的cvCanny函數,便會出現一個新的頁面,當然我們的目的是確定cvCanny函數所在的模組,我們發現,新出現的頁面的網址中:
有“modules/imgproc”這樣的一小部分,所以我們可以知道,cvCanny函數是屬於imgproc模組。那麼,知道cvCanny函數所在的模組之後,下一步要做什麼呢。請繼續往下看。
2. 使用Visual Studio進行源碼搜尋。開啟Visual Studio,在:
編輯——尋找和替換——在檔案中尋找 進行如下的輸入:
尋找的內容當然就是cvCanny,而尋找的範圍就是sources\modules\imgproc\src
到這裡,可以知道,上面步驟1確定函數所在的模組是為了縮小尋找的範圍,加快尋找的速度。
尋找得到如下的結果:
這個時候,雙擊相應的行就可以查看cvCanny函數所對應的源碼了。
到這裡,就完成了對“用opencv官網+Visual Studio”查看opencv函數原始碼這種方法的介紹。
還是上面說的,這種方法主要是方便懶得使用cmake或者只是偶爾靈光一閃想看看原始碼的朋友,如果是想系統地查看原始碼,當然還是得用cmake建立起相應的工程檔案,查看起來才能比較方便。