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.哪个函数
例如

img=cv.imread('Img.jpg');

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,发现也能执行,所以觉得有点坑,大家可以借鉴一下。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值