OpenCV-Python绑定如何工作及如何扩展新模块到Python
生活随笔
收集整理的這篇文章主要介紹了
OpenCV-Python绑定如何工作及如何扩展新模块到Python
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
OpenCV-Python綁定如何工作及如何擴展新模塊到Python
- 1 OpenCV-Python 綁定的基本版本
- 2 如何將OpenCV的新模塊擴展到 Python?
- 參考
這篇博客將介紹 OpenCV-Python 綁定是如何生成的以及如何將新的OpenCV模塊擴展到Python。
在 OpenCV 中,所有算法都是用 C++ 實現的。但是這些算法可以用于不同的語言,如 Python、Java 等。綁定生成器使這成為可能。 這些生成器在 C++ 和 Python 之間架起了一座橋梁,使用戶能夠從 Python 調用 C++ 函數。
1 OpenCV-Python 綁定的基本版本
- OpenCV提供了cv2 模塊;
- 當調用一個函數時,比如在 Python 中 res = equalizeHist(img1,img2) ,傳遞了兩個 Numpy 數組,一個Numpy數組為入參,期望另一個 Numpy 數組作為輸出;
- 調用時numpy數組被轉換為cv::Mat,然后在C++中調用equalizeHist()函數;
- 最終結果 res 將被轉換回 Numpy 數組。
簡而言之,幾乎所有的操作都是在 C++ 中完成的,因此幾乎擁有與 C++ 相同的速度。
2 如何將OpenCV的新模塊擴展到 Python?
頭文件解析器根據添加到函數聲明中的一些包裝宏來解析頭文件。枚舉常量不需要任何包裝宏。它們會自動包裝。但是剩下的函數、類等需要包裝宏。
了解OpenCV 中可用的主要擴展宏。通常,開發人員必須將適當的宏放在適當的位置。其余部分由生成器腳本完成。
參考
- https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_bindings/py_bindings_basics/py_bindings_basics.html#bindings-basics
總結
以上是生活随笔為你收集整理的OpenCV-Python绑定如何工作及如何扩展新模块到Python的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pyhton,OpenCV对象检测之——
- 下一篇: 使用Python和OpenCV在图像之间