matlab和opencv混编(mex问题,mexopencv问题)(水下相机折射补偿:Pinax-model)
1.mexopencv
這是個程序,實現了在matlab方便地引入opencv。
有眾多版本,不同版本對應不同opencv。
mexopencv 2.4(適用opencv2.4及以上版本):
https://github.com/kyamagu/mexopencv/tree/v2.4
mexopencv 3.4.1(適用opencv3.4.1版本):
https://github.com/kyamagu/mexopencv
下載了解壓就好,不用安裝。
2.opencv
opencv2的版本直接壓就可以使用
opencv3下載后,需要用cmake編譯一下,然后在vs中生成,才能用。
(其中可能遇到的問題:編譯時出現紅色字體錯誤,建議編譯時把電腦裝的python和cuda卸載了,因為有這兩個在opencv3編譯時會對這兩項進行編譯,但是這樣由于版本問題以及安裝環境問題很容易造成錯誤,所以干脆不要編譯了;在vs生成時也是,如果之前存在python,生成會出現找不到lib的錯誤)
這里還要提示一下,用mexopencv 3.4.1時,其尋找大連接為…….lib,而咱們debug生成的文件為……d.lib,所以很容易找不到lib,因此在vs生成時選用Release
對兩項進行生成。
3.matlab使用opencv
在matlab中使用下列語句進行調用和編譯
addpath('E:\opencv\mexopencv-2.4')%mexopencv的解壓位置 mexopencv.make('opencv_path','E:\opencv\opencv\build')%opencv的build位置,opencv3的為install位置完成后就可以在matlab中用opencv的程序了,需要哪個函數,直接cv.哪個函數
例如
4.水下相機折射補償
The Pinax-Model for Accurate and Efficient Refraction Correction of Underwater Cameras in Flat-Pane Housings: MATLAB Examples
https://github.com/tomluc/Pinax-camera-model
本文做了兩點
①找到了最合適的相機到玻璃的距離,使得發生折射后的相機更接近小孔相機
②利用空氣中標定的參數,再利用相機到玻璃的距離、玻璃厚度、以及玻璃和水的折射率獲得折射補償函數,進而對折射進行修正。
原文中說的
To run this example mex opencv is required (https://github.com/kyamagu/mexopencv).
這個需要用到opencv3.4.1,然后怎么弄都不對,后來直接用opencv2.4,發現也能執行,所以覺得有點坑,大家可以借鑒一下。
總結
以上是生活随笔為你收集整理的matlab和opencv混编(mex问题,mexopencv问题)(水下相机折射补偿:Pinax-model)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VScode 常用插件推荐,非常全面
- 下一篇: knn matting matlab,一