• 大小: 3KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: C/C++
  • 标签: MATLAB  mex  滑动窗口  

资源简介

MATALB可调用的图像滑动窗口算法,用mex编译后可调用。返回滑动窗口得到的图片块样本。

资源截图

代码片段和文件信息

#include “mex.h“
#include “math.h“
#include 

#define IM_IN prhs[0]
#define SZ_IN   prhs[1]
#define STRID   prhs[2]

#define P_OUT   plhs[0]

void mexFunction(int nlhs mxArray *plhs[] int nrhs const mxArray *prhs[])
{
    /**********************************************************
     *  Input arguments:
     *      original image
     *      size
     *      stride
     *  Output arguments:
     *      patches
     *      scales
     **********************************************************/
    double *in *out *s;
    mwSize sz[2] stride[2] n[3] dims[4] ndim;    
    ndim = mxGetNumberOfDimensions(IM_IN);    
    
    
if (nrhs < 2 || nrhs > 3) {
        mexErrMsgTxt(“Invalid number of input arguments.“);
    } else if (nlhs > 2) {
        mexErrMsgTxt(“Too many output arguments.“);
    }    
    if (!mxIsDouble(IM_IN) || mxIsComplex(IM_IN) || ndim > 3) {
        mexErrMsgTxt(“Image should be a 2-D or 3-D double matrix.“);
    }
    if (!mxIsDouble(SZ_IN) || mxIsComplex(SZ_IN) || mxGetM(SZ_IN)*mxGetN(SZ_IN) > 2 || mxGetNumberOfDimensions(SZ_IN) > 2) {
        mexErrMsgTxt(“Invalid window size.“);
    }
    if (nrhs == 3) {
        if (!mxIsDouble(STRID) || mxIsComplex(STRID) || mxGetM(STRID)*mxGetN(STRID) > 2 || mxGetNumberOfDimensions(STRID) > 2) {
            mexErrMsgTxt(“Invalid stride.“);
        }
    }
    

评论

共有 条评论