⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hist5hel.c

📁 利用matlab实现彩色图像的分割。算法主要是利用聚类算法。
💻 C
字号:
/* A replacement for fast(sparse(S,1,1,n,1)) because this should be fast.
 *
 * Usage x=hist5hel(S,n) with all elements of S integers in the
 * range 1..n gives x(i)=sum(S==i).
 * 
 * Written for Matlab 5 by Hans Olsson 1997-06-26
 *    Department of Computer Science
 *    Lund University
 *    Sweden
 *
 *    E-mail: Hans.Olsson@dna.lth.se
 *
 *          
 */


#include <math.h>
#include <ctype.h>
#include "mex.h" 
          /* mex.h is included with the Matlab shipment */


/* some preprocessor definitions */

#define	min(A, B)	((A) < (B) ? (A) : (B))
#define mrows(A)	(mxGetM(A))
#define ncols(A)	(mxGetN(A))
#define realdata(A)	(mxGetPr(A))

void mexFunction(int nlhs,mxArray*plhs[],int nrhs,const mxArray*prhs[]) 
{
  const double *y_in;
  long int n,i,n_in;
  double *x_out;
  if (nrhs<1 || nrhs>2) 
    mexErrMsgTxt("histmultihelp.c: wrong number of input arguments.");
  if (nlhs !=1 ) 
    mexErrMsgTxt("histmultihelp.c: wrong number of output arguments.");

  y_in=realdata(prhs[0]);
  n=*realdata(prhs[1]); /* Range of data is 1..n */

  plhs[0]=mxCreateDoubleMatrix(n,1,mxREAL);
  x_out=realdata(plhs[0]);

  n_in=mxGetM(prhs[0])*mxGetN(prhs[0]);

  /* Zero all elements :*/
  for(i=0;i<n;i++) x_out[i]=0.0;

  /* Go through the elements and add the to their positions */
  for(i=0;i<n_in;i++) {
    long int index=y_in[i];
    if ((index>=1)&&(index<=n))
      x_out[index-1]+=1.0;
  };
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -