【kate总结】matlab调用opencv总结
正常情况下,编写好matlab调用opencv的代码。
1.输入 MEX XX.CPP(所有的mex都要编译)
2.将生成的.mexw64 放到要调用的文件夹下即可
出错总结:
本人写的matlab调用opencv的代码:
本代码路径:D:\visual studio demo\Rect2
1.配置:严格按照之前配置的文章进行配置
2.编译
3运行
运行时提示错误,代码本身没有问题。但是在matlab中编译生成的mexw64 调用时会出现如上错误,原因未知。 现解决办法如下。
代码的功能:matlab传入一组数组 ,利用groupRectangles(dst, 1, 0.2);进行窗口融合。再将融合的数组传到matlab
//矩阵的传入与传出
//20151021矩阵[1 3 50 100;3 5 50 100;5 7 50 100;7 9 50 100;9 11 50 100]出错,得进行调试
//opencv 的结果为[5 7 50 100]
//[2 4 50 100;4 6 50 100;6 6 50 100;8 10 50 100;10 12 50 100] 结果 6 8 50 100 #include "mex.h"
#include <iostream>
#include <vector>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]){
//输入,输入进来的矩阵一定是n×4,不能为空
double *inMatrix;
inMatrix = mxGetPr(prhs[]); //得到输入矩阵的第一个元素的指针
int mrows = mxGetM(prhs[]); //获得矩阵的行
int ncols = mxGetN(prhs[]); //获得矩阵的列, vector<Rect> dst;
dst.clear();
Rect tempt;
int dst_size;
printf("%d_%d\n", mrows, ncols); //打印行和列 for(int i = ; i < mrows; i++)
{
tempt.x=inMatrix [ * mrows + i];//[当前列*行数+当前行]
tempt.y=inMatrix [* mrows + i];
tempt.width=inMatrix [* mrows + i];
tempt.height=inMatrix [ * mrows + i];
dst.push_back(tempt);
}
// printf("oriSize: %d\n",dst.size());
//cout<<"oriSize:"<<dst.size()<<endl;
groupRectangles(dst, , 0.2);
dst_size=dst.size();//当前行数
printf("curSize: %d\n",dst.size());
//cout<<"curSize:"<<dst_size<<endl; //输出
plhs[] = mxCreateDoubleMatrix(dst_size,, mxREAL); //输出,每一列为一个窗口,行数=维数,列数=窗口数
double *outMatrix;
outMatrix = mxGetPr(plhs[]);
for(int i = ; i < dst_size; i++)
{
outMatrix[*dst_size+i ]=dst[i].x;
outMatrix[*dst_size+i ]=dst[i].y;
outMatrix[*dst_size+i ]=dst[i].width;
outMatrix[*dst_size+i ]=dst[i].height;
} }
解决步骤:
一.在opencv中新建一个
二、属性配置
右键属性
3.在test.def中输入
LIBRARY test
EXPORTS mexFunction
在vs2010中 生成。
在matlab打开工程名.X64.DEBUG
输入命令mex name.obj
复制mexw.64 和 工程底下的.CPP文件到需要的matlab文件夹中即可
备注:
生成,就是将项目文件编译成可执行文件等运行时必须的文件。
生成解决方案,就是将该解决方案里所有项目进行编译,生成文件,与生成的功能类似。
开始执行(不调试),就是只执行,不进行调试,就像执行可执行文件一样,不会进入断点调试。
将运行得到的结果 .mexw64 即可执行文件放到要运行的matlab底下即可 。
【kate总结】matlab调用opencv总结的更多相关文章
- matlab调用opencv函数的配置
环境: VS2010 活动解决方案平台x64 WIN 8.1 Opencv 2.4.3 Matlab 2012a 1. 首先保证vs2010能正确调用opencv函数, 2. Matlab中选择编 ...
- [转] matlab调用opencv函数的配置
原文地址百度账户 aleasa123 方式1 1. 首先保证vs2010能正确调用opencv函数, 2. Matlab中选择编译器,操作如下: 打开matlab2012,输入mex –setup ...
- matlab和C/C++混合编程--调用opencv
最近的我们已经将整个项目搭起来了,项目比较复杂.由于我们做的是检索系统,所以我们用asp.net(c#)做了网页,但是算法的实现是在matlab下,所以我们不得不用matlab生成动态链接库dll,然 ...
- Atitit 图像处理 调用opencv 通过java api attilax总结
Atitit 图像处理 调用opencv 通过java api attilax总结 1.1. Opencv java api的支持 opencv2.4.2 就有了对java api的支持1 1. ...
- Lua 调用 Opencv 的方法
Lua 调用 Opencv 的方法 最近想用 Lua 调用 Opencv 进行相关像素级操作,如:bitwise_and 或者 bitwise_or,从而完成图像 IoU 的计算. 那么,怎么用 Lu ...
- MATLAB调用C程序、调试和LDPC译码
MATLAB是一个很好用的工具.利用MATLAB脚本进行科学计算也特别方便快捷.但是代码存在较多循环时,MATLAB运行速度极慢.如果不想放弃MATLAB中大量方便使用的库,又希望代码能迅速快捷的运行 ...
- C#调用opencv
最经做一个项目,底层调用openCV编写的图像处理程序,用户界面采用C#编写. 于是学习了相关技术,总结如下: C#编写的是托管代码,编译生成微软中间语言,而普通C++代码则编译生成本地机器码,这两种 ...
- csharp通过dll调用opencv函数,图片作为参数
[blog 项目实战派]csharp通过dll调用opencv函数,图片作为参数 一直想做着方面的研究,但是因为这个方面的知识过于小众,也是由于自己找资料的能力比较弱,知道今天才找 ...
- 向量和矩阵的范数及MATLAB调用函数
范数就是长度的一种推广形式,数学语言叫一种度量.比如有一个平面向量,有两个分量来描述:横坐标和纵坐标.向量的二范数就是欧几里得意义下的这个向量的长度.还有一些诸如极大值范数,就是横坐标或者纵坐标的最大 ...
随机推荐
- eclipse里maven install时,报错提示jdk为无效的目标版本:1.7
http://blog.csdn.net/wabiaozia/article/details/51733372 ************************************ 报错提示: [ ...
- haskell rust相关文章
Combining Rust and Haskell http://tab.snarc.org/posts/haskell/2015-09-29-rust-with-haskell.html
- jQuery中对属性的增删改查
获取元素的属性 $('input').attr('type') .attr() 可以获取和设置自定义属性 .prop() 只能获取和设置固有属性 在设置属性值时 建议不要修改type属性,有的浏览 ...
- hiho_1049 二叉树遍历
题目大意 给出一棵二叉树的前序和中序遍历结果,求出后序遍历的结果.保证二叉树中节点值均不相同. 分析 通过前序和中序遍历的结果,我们可以构建出二叉树,若构建出二叉树,则后序遍历的结果很容易求出(当然递 ...
- Animation用法
测试代码及说明: <!DOCTYPE html> <html lang="en-US"> <head> <meta charset=&qu ...
- 第三章 Python容器:列表、元组、字典与集合
数据结构的分类依据?基本的"数组"在python中是列表, 数据结构的作用?容器,盛放数据,是由原子组成的分子.可以将一群数据进行整合.拆分.重排. 3.2 列表 列表是啥?顺 ...
- Eclipse 配置Tomcat
1.Eclipse EE 配置Tomcat Eclipse EE 主要用于Java Web开发和J2EE项目开发.Eclipse EE中配置Tomcat比较简单,新建一个Tomcat Server即可 ...
- 如何使div左右倾斜
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" ...
- 鸟哥的linux私房菜勘误表
博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://github.com/jiangxincode 知乎地址: https://ww ...
- Ubuntu 系统下 mongodb 安装和配置
安装 MongoDB sudo apt-get install mongodb sudo apt-get install mongodb 关闭/启动 sudo service mongodb stop ...