官术网_书友最值得收藏!

1.4.2 案例5:OpenCV裁剪編譯

OpenCV包含很多模塊,功能齊全,但是對于很多讀者來說,這些模塊并不一定都用得上,而且編譯了這些模塊之后,二進制庫會比較大。對于很多軟件部署來說,這會造成資源的浪費,因此,本節介紹OpenCV的裁剪編譯,裁剪不必要的模塊使之不參與編譯。

在CMake配置(Configure)完成之后,讀者可以勾選要編譯的模塊,如圖1.38所示。

img

圖1.38

OpenCV的所有模塊都有對應的編譯選項,如core模塊對應的編譯選項是BUILD_opencv_core,圖1.38是OpenCV的默認編譯配置。對于某些讀者來說,可能只需使用OpenCV讀/寫圖像,做一些基本的變換操作,此時,只需編譯core、imgproc和imgcodecs這3個模塊即可。如果讀者只需編譯C++的二進制庫文件,不需要編譯其他語言的包,則可以去掉其他語言選項,如BUILD_JAVA語言選項。

本案例裁剪后只保留core、imgproc和imgcodecs這3個模塊的編譯選項,讀者記得勾選“BUILD_opencv_world”復選框,編譯的Release結果如圖1.39所示。

img

圖1.39

在圖1.39中,opencv_world450.dll的大小為36997KB,對比圖1.37中的opencv_world450.dll(58516KB),可以看出,裁剪后占用空間變小,方便部署使用。

讀者也可以通過編譯命令控制模塊是否參與編譯,如不編譯dnn模塊,可以將其開關關掉:

同理,其他模塊可以通過-DBUILD_opencv_*=OFF關閉編譯選項,通過-DBUILD_opencv_*=ON打開編譯選項。

主站蜘蛛池模板: 句容市| 安岳县| 封丘县| 平湖市| 浪卡子县| 平南县| 天镇县| 安龙县| 朝阳区| 南平市| 丹棱县| 新宾| 汪清县| 黄平县| 苍溪县| 哈巴河县| 全椒县| 上杭县| 通城县| 洛阳市| 长葛市| 平乐县| 邵阳市| 荆州市| 富源县| 东乌珠穆沁旗| 安泽县| 博客| 泸水县| 奉化市| 报价| 大姚县| 陈巴尔虎旗| 古浪县| 海伦市| 鹤庆县| 鄂托克旗| 团风县| 那曲县| 孙吴县| 迁安市|