簡體   English   中英

#include opencv中的C ++頭文件

[英]#include C++ header files in opencv

我只是用

#include <opencv2/opencv.hpp>

事情很有效。 我可以問為什么我們應該這樣做:

#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/highgui/highgui.hpp>

為什么這里是* .hpp文件而不是* .h文件?

請原諒我提出這么簡單的問題。

.hppC ++語言頭文件的約定 由於OpenCV有一個與C ++並行的C API的長篇故事,人們可以很容易地理解為什么編寫庫的人選擇了這個擴展來避免混淆

對於全局與小型包含問題,您需要回憶起C / C ++中的工作原理。 在編譯之前, 頭文件只是復制到.c文件中。

  • 當你使用全局包含opencv.hpp (它包含所有其他包含的某種傘)時,所有的庫頭文件都被包含在內並因此被復制到你的.cpp文件中。 這意味着您可以減少輸入,但最終會為編譯器提供更大的文件。 因此, 編譯時間更長
  • 使用本地頭文件時,您只需一次添加一個OpenCV模塊。 因此,如果您將自己限制在實際需要的模塊中,則編譯速度會更快 另一個優點是您可以真正了解您在程序中使用的模塊 ,這有助於您鍵入相應的正確鏈接器選項,例如,如果僅使用圖像處理模塊, -lopencv_core -lopencv_imgproc
#include <opencv2/opencv.hpp>

此頭文件包含其正文中OpenCV中的所有其他頭文件。 因此,如果您包含該文件,則綽綽有余。

.h”代表C,“。 hpp”代表C ++。 這只是標准。

只需打開opencv2 / opencv.hpp文件,我想你會得到答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM