Matlab本身有着出色的图像算法分析工具,但有时我们出于速度和开发的需要,在matlab中调用opencv辅助处理,那么如何在matlab中调用opencv呢?这篇博客介绍三种方式:Matlab嵌入C++,使用mexOpenCV第三方工具,使用Matlab官方提供的Computer Vision Toolbox中的OpenCVInterface。
软件编程
Matlab与C++混合编译之Matlab版本选择
Matlab中混编C++可以在提高代码效率的同时保持良好的脚本调用,在Matlab中可以用mex来编译C++代码,mex的命令怎么用可以直接doc mex看到。这篇博客主要因为博主需要跨平台编译,刚好遇到Matlab版本不同而产生的一些奇奇怪怪的问题,主要是记录博主自己踩过的坑。
Excel执行Matlab函数和脚本
这篇博客介绍的是Excel通过excllink插件调用matlab。excllink是官方提供的工具,在安装Matlab时如果勾选该toolbox,则会自动安装,但是安装好之后我们还需要在Excel中进行配置。
Matlab嵌入C++,API,编译与调试
Matlab嵌入C++是很容易的,嵌入C++的matlab在保持易用性的同时,可以加快程序速度。嵌入的C++代码不能直接在matlab中断点调试,需要借助Visual Studio之类的工具进行调试。这篇博客主要以简单的demo导入,介绍如何在Matlab中嵌入C++程序。
CMake使用NDK独立工具链进行交叉编译
在交叉编译中,NDK是一个很好的工具。windows、linux、android、32bit、64bit,能够处理绝大部分程序的交叉编译。而CMake组织程序又使得程序具有良好的跨平台编译。NDK下载好之后,工具链无法直接被cmake使用,需要通过一个脚本生成独立的工具链。这篇博客介绍CMake使用NDK的独立工具链。
PyTorch:The “freeze_support()” line can be omitted if the program is not going to be frozen
在windows上运行pytorch时,稍不注意就会遇到freeze_support()的错误。解决这种错误只 … 阅读更多
Sublime代码自动补全插件开发快速上手
厌倦了国内繁琐的备案和审查,对无缘无故的网站关停感到无奈,服务器搬到东京后的第一篇博客 ,点开网站速度超级快,心情顺畅,来一发博客。
我们在开发自己的脚本或者编程工具后,可以定义自己的代码自动补全。这篇博客将介绍Sublime中两种添加自己代码补全的方式:代码片段snippet和 completions。
Python调用Lua:Lupa
lua与python均为成熟的脚本方案,它们的不同在与体量,Lua的体量小,高效的执行方式适合嵌入式,python胶水的强大不言而喻。那么如果自己已经有了lua脚本的解决方案,python能否调用呢?答案是肯定的,这篇博客将介绍python中集成的lua环境包:lupa,简单介绍该工具的使用。
优雅的用Lua调用OpenCV
说起脚本语言调用opencv,我们通常会想到python。如果说要在更小的系统中使用脚本语言,我们会想到lua。如果说用lua进行图像处理,我们肯定会想到大名鼎鼎的torch。torch中的image模块重写了opencv,封装了lua接口,但是如果我们不想修改opencv如此庞大的源码,又想像python调用opencv那样简单直接,那应该怎么做呢?
在正式开始介绍之前,想展示一段简答的代码,来告诉大家即将要做的事情是什么。(也是假人以渔了^_^)
嵌入式脚本语言:Lua
最近在调研嵌入式脚本语言,发现Lua很适合在嵌入式平台运行。第一次认识Lua是在Torch,lua的解释器源码只有几百K,从未见过如此轻巧的脚本语言。Lua是类C的,所以上手超级快。
这篇博客主要涵盖以下几个方面:lua语言(主要是语法相关的资料)、lua的编译、lua与C/C++交互、lua的调用开销。
OpenCV4迁移那些坑(之二)图像代码和宏
在OpenCV4中,移除了原来的C接口,这也导致我们在迁移过程中,一些宏和图像代码找不到,比如CV_GRAY2GBR、AA、CV_INTERLINER这种,常常让人摸不着头脑。简单的说下这些问题的解决方法主要有以下几种:
OpenCV4迁移那些坑(之一)cv::divide
简单的说,就是opencv3及之前,cv::divide函数在遇到分母为0的情况时,对应元素的输出都是0。而到 … 阅读更多
No module named ‘matplotlib.finance’
产生该错误的原因是matplotlib的代码维护者希望他们的代码干净,就把这种sidepackage给移除了, … 阅读更多
CMake中的一些预定义量
使用CMake组织工程已经成为习惯,因为在许多场合,跨平台与协作开发显得尤为重要。摘抄一些常用的Cmake信息,以随时查阅。