沈陽高端網(wǎng)站定制百度知道問答平臺
用Cmake build OpenCV后,在VS中查看OpenCV源碼的方法
Part II
用Cmake build OpenCV后,在VS中查看OpenCV源碼的方法(環(huán)境VS2022+openCV4.8.0) Part I_松下J27的博客-CSDN博客
在上一篇文章中,我用cmake成功的生成了opencv.sln,后面都不會再用cmake了,直接在VS中操作。
1,用VS打開OpenCV.sln,并編譯該項目
1.1,打開后,確認當(dāng)前的運行環(huán)境為Debug+x64模式,然后依次點擊生成——>生成解決方案
實際上在你打開opencv.sln后不做任何選擇的話,系統(tǒng)默認是在生成“ALL_BUILD”的解決方案。
?耐心等待VS編譯,編程成功后系統(tǒng)會有提示。
編譯成功后,在opencv480_build里的lib和bin這兩個文件夾中會分別新增出兩個“Debug”文件夾。
?
1.2? ALL_BUILD生成好以后,再生成下面的INSTALL,鼠標右鍵單擊INSTALL選擇生成。
編譯成功后會在我們自己創(chuàng)建的 “opencv480_build”文件夾中,新增一個文件夾“install”。
?
????????這一步的目的是把我們未來調(diào)用opencv庫時所需要的所有文件都一并放到這個文件夾中,方便將來使用。
1.3, 把前面的1.1和1.2再來一遍,之前我們都是debug+x64模式下生成的,這一步改成release+x64模式。
1.3.1此處選擇Release
1.3.2 此處選擇Release選擇生成——>生成解決方案。?
?1.3.3 用同樣的方式再次生成“INSTALL”。?
這一步也完成后,在我們自創(chuàng)的opencv480_build中的lib和bin文件中,會新增出兩個“Release”文件夾。
?
?
?release和debug模式下所生成的文件都是同名文件,唯一的區(qū)別就是在debug模式下所生成的文件的文件名會多個d以示區(qū)別。
?8,查看Opencv源碼
????????前面的編譯全都完成了,這個時候,我們就可以在VS中查看openCV的源碼了。(只是到目前為止我都還沒有介紹如何在自己的項目中調(diào)用Opencv庫,這個后面會講)
? ? ? ? 舉個例子,在我們的打開的opencv.sln中,搜索(記得在“整個解決方案”中搜)我們想查看源碼的函數(shù)名,比如說imread。
? ? ? ? 只要能找到任何一處的引用,按住control然后單擊鼠標左鍵,不斷的往底層查看,就能看到imread這個函數(shù)的源代碼了。
?這是上圖函數(shù)的下一層,同時我們看到他被保存在“imgcodecs.hpp”中。
?再下一層,我們找到了imread的具體實現(xiàn)函數(shù),他在loadsave.cpp中。同時,我們還看到了imread所調(diào)用的底層子函數(shù)也是核心函數(shù)imread_()。
?繼續(xù)跟進到“imread_()”函數(shù)中,我們就能看到opencv的imread函數(shù)究竟是如何實現(xiàn)的了。
?
????????小結(jié):opencv作為Intel公司的開源代碼,編碼風(fēng)格非常專業(yè),而且里面實現(xiàn)的底層算法也非常的易讀,同時還配有opencv的官方說明文檔,是學(xué)習(xí)用C語言實現(xiàn)的各種圖像算法的絕佳資料。無奈,鄙人最近才開始接觸,之前一直成迷于matlab,感覺錯過了一個世紀。
? ? ? ? 問了周圍的一些同事,有些人在上大學(xué)的時候就已經(jīng)開始學(xué)習(xí)opencv了。。。哎。后面的文章我接著介紹如在自己的庫中調(diào)用OpenCV的庫,并同樣能夠在debug的時候,查看opencv的底層代碼。
??(全文完)
作者 --- 松下J27
參考文獻(鳴謝):
????????1,Download | CMake
????????2,OpenCV - Open Computer Vision Library
?版權(quán)聲明:文中的部分圖片,文字或者其他素材,可能來自很多不同的網(wǎng)站和說明,在此沒法一一列出,如有侵權(quán),請告知,立即刪除。歡迎大家轉(zhuǎn)載,但是,如果有人引用或者COPY我的文章,必須在你的文章中注明你所使用的圖片或者文字來自于我的文章,否則,侵權(quán)必究。 ----松下J27?