MATLAB/C/C++警告错误解决
仙女阳
希望多学习
展开
-
error c4996: 'fopen' This function or variable may be unsafe如何解决
VS2013+OPENCV249,经常遇到以下错误:错误 1error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help fo转载 2017-12-15 10:21:56 · 2454 阅读 · 0 评论 -
matlab无法读取xls
我首先从C++中导出了xls格式的excel表格,又用MATLAB读取时,遇到下面的问题:Error using xlsread (line 251) File E:\matlab_pagram\myGMS\right.xls not in Microsoft Excel Format.我的读取函数是:labels_right = xlsread('right.xls');程序没什么问...原创 2018-09-26 20:54:16 · 9178 阅读 · 0 评论 -
mexw32与mexw64
关于mex文件 MATLAB的mex文件是一种特征的函数封装形式,这类函数一般由C/C++语言编写的,经过MATLAB编译器处理而生成的二进制文件。它可以被MATLAB解释器自动装载并执行的动态链接程序,类似于windows下的dll文件。在使用的时候也可以像普通的.m文件一样根据文件名来调用(但是看不到源码),mex文件比m文件具有更高的优先级,如果有两个同名的文件,比如A.mex...原创 2018-09-06 21:53:46 · 13800 阅读 · 0 评论 -
程序逻辑上多一些提示
写程序时要想下各种可能出错的情况,提前给出错误提示,项目大了就可以比较容易找错误。比如,当特征点个数小于4时不能计算单应矩阵,所以当个数小于4时先输出提示:if (matchePoints.size()>10) for (int i = 0; i<11; i++) { imagePoints1.push_back(keypoints1[matchePoint...原创 2018-04-20 11:26:00 · 167 阅读 · 0 评论 -
子函数的指针释放问题
C语言中遇到一个这样的问题:子函数中malloc了一个指针存储数据,作为该子函数的返回值,return到主函数。 那么这个指针应该在哪里释放呢? 显然不能在子函数里释放,否则返回值没有意义。这样就应该在主函数里释放,主函数里申请一个指针,指向这个返回值,使用之后释放。 更好的做法:在主函数里申请一段内存空间,初始化为0,传入子函数中对数据进行修改,不设返回值。该指...原创 2018-04-24 15:38:26 · 3796 阅读 · 1 评论 -
C、C++申请指针内存的问题
关于指针的血和泪的教训1、指针申请时一定要检查是否申请成功,当项目比较庞大时,内存有可能申请不成功导致程序中断,而这时候往往无从知道哪里出现了问题。如下: double* wid = (double*)malloc((num+1) *sizeof(double));//存储每个矩形的宽 if (wid == NULL) { cout << "Fail to allocate m...原创 2018-04-20 10:35:33 · 824 阅读 · 0 评论 -
警告warningC4018有符号/无符号不匹配
C++警告 warning C4018: “<”: 有符号/无符号不匹配 警告代码如下: for (int i = 0; i<matchePoints.size(); i++) { imagePoints1.push_back(keypoints1[matchePoints[i].Idx1].pt); imagePoints2.push_back(keypoi...原创 2018-04-24 10:59:45 · 12549 阅读 · 1 评论 -
warning C4091: “typedef ”: 没有声明变量时忽略“_matcher”的左侧
C++ 警告 warning C4091: “typedef ”: 没有声明变量时忽略“_matcher”的左侧 typedef struct _matcher{ int Idx1; int Idx2; double dis;};修改方法:删掉typedef ,这是C语言的结构体,C ++会自动分配。...原创 2018-04-24 10:35:39 · 21610 阅读 · 3 评论 -
opencv的两个错误
1、imwrite未定义标识符 先检查opencv和C++有没有配置好,再看有没有包含相应的头文件,最后发现是因为没有使用cv的命名空间,需要加上using namespase cv;2、cvCvtColor的使用 函数原型:cvCvtColor(src,dst,CV_BGR2GRAY) 其中src和dst使用前必须提前申请好内存空间,IplImage *dst = 0;这样的做法是错误的...原创 2018-04-19 16:14:55 · 498 阅读 · 1 评论 -
关于opencv读取摄像头的未解之谜
前段时间做项目需要用opencv读usb摄像头的视频数据,遇到很多无解的问题,虽然后来没有用到,但是还是记录下来,也许以后就知道答案了呢。1、无论摄像头的实际分辨率是多少,opencv读进来的视频分辨率都是640*480大小的,网上说可以用内置的函数修改分辨率的大小,我试了下下面的函数语句,虽然分辨率确实变成了720p,但是清晰度并没有提升甚至有些模糊,看起来像是强行插值扯大的,没有真正得...原创 2018-04-18 20:38:46 · 3253 阅读 · 1 评论 -
malloc申请一维动态数组的错误
正确写法: int *tmp = ( int * )malloc( H*W*sizeof(int) ); float *tmp = ( float * )malloc( H*W*sizeof(float) ); double *tmp = ( double * )malloc( H*W*sizeof(double) ); 错误写法: double ...原创 2017-12-07 20:35:31 · 769 阅读 · 0 评论 -
C及opencv指针释放问题
一个图像处理的项目运行时没有问题,最后关掉显示的图片时提醒触发一个断点,点击继续则出现以下画面:断点停留在释放指针的那一行。究其原因如下:1.错用free释放IplImage*IplImage* input = cvLoadImage("data/LOGO/2_1.jpg");//待测图IplImage* test = cvLoadImage("data/LOGO/1_1.jpg");...原创 2018-03-13 15:24:38 · 959 阅读 · 0 评论 -
C error :Run-Time Check Failure #2 - Stack around the variable 'b' was corrupted.
运行程序遇到这样的错误:Run-Time Check Failure #2 - Stack around the variable 'b' was corrupted. 检查后发现原因在于:数组b越界了,int b[4]里面有4个元素,包含b[0],b[1],b[2],b[3],没有b[4],赋值的时候把某个数据赋给了b[4]原创 2018-01-08 20:22:31 · 2874 阅读 · 0 评论 -
Opencv imshow显示不出来图片
VS+OPENCV处理图像时,imshow显示图片一片灰色,刚开始以为图片太大一直加载不出来,但是一直等不到显示出来,最后发现是因为最后忘记写cvWaitKey(0);//或者waitKey(0);原创 2018-01-08 19:44:02 · 10760 阅读 · 7 评论 -
C++error:找不到指定文件
做作业遇到这样的问题:新建了一个C++工程,在内部新建了a.cpp a.h文件,将另一个工程里面的内容复制了过来,但是运行显示“找不到指定文件”,找了一下,发现虽然我的项目源文件里包换这个cpp文件,但是和其他cpp文件不在同一个文件夹里,所以程序运行找不到该文件。 以后注意,新建的文件要在同一个文件夹里,与主函数保持一致。原创 2018-01-08 17:01:52 · 3740 阅读 · 0 评论 -
MATLAB错误:‘conv2’
MATLAB错误Undefined function 'conv2' for input arguments of type 'double' and attributes 'full 3d real'. 原因:Color images are 3 dimensional arrays (x,y,color). conv2 is only defined for 2-dimensions,...原创 2018-09-29 21:03:41 · 5319 阅读 · 1 评论