00001 00002 /* 00003 * THIS IS A GENERATED FILE; DO NOT EDIT. 00004 * 00005 * Declarations for calling `clean_edge_label' a.k.a. `cel' as a C library. 00006 * 00007 * Made by intermediate binary `clean_edge_label.out' on: 00008 * Thu Jul 7 22:00:02 2011 00009 * 00010 * Code for include-generation driver `../Gen-include.c' last modified on: 00011 * Mon Jun 7 15:11:28 2010 00012 * 00013 */ 00014 00015 // Original documentation block 00016 /* 00017 * clean_edge_label: clean up labels at extreme edge of a disk 00018 * 00019 * [res,nclean]=clean_edge_label(img,center,delta,fill,mode); 00020 * * Remove possibly-tainted labels at edge of disk by cleaning 00021 * pixels in an annulus of width delta pixels. Also, sets all 00022 * off-disk values to the value of the (1,1) pixel of img. 00023 * * There are two cleaning modes. Easiest is, set values in 00024 * the edge annulus to `fill' (NaN is OK). But, if `mode' 00025 * contains the string "adaptive", we instead propagate the value 00026 * just inside the annulus radially outward to the limb, and the 00027 * `fill' value is unused. 00028 * * The number of on-disk pixels altered is in nclean. 00029 * * Primary disk parameters (x-center, y-center, radius) are in 00030 * `center'. The sun is the disk defined by these three numbers. 00031 * As a convenience, 'center' can be a "geom" vector, a 5-tuple 00032 * with beta and p-angle at the end (these are not needed by 00033 * this routine). 00034 * * If delta < 0, img is propagated to res without further ado. 00035 * (The off-disk clearing is not done either.) 00036 * In this case, the center parameter need not be correct. 00037 * * The "mode" string also switches between sesw (mode = 'sesw') 00038 * or transposed (mode = 'sene') pixel ordering. You must specify 00039 * one or the other. 00040 * * The normal HMI (and normal MDI) pixel ordering starts in the 00041 * southeast corner, and the first scan line of pixels runs toward the 00042 * southwest corner. This is `sesw' ordering. The transposed ordering 00043 * is `sene'; this ordering is what we used for the JPL MDI processing. 00044 * This is implemented via internal stride parameters. 00045 * 00046 * 00047 * Inputs: 00048 * real img(m,n); 00049 * real center(3) or (5); 00050 * real delta; 00051 * real fill; 00052 * string mode; 00053 * 00054 * Outputs: 00055 * real res(m,n); 00056 * int nclean; 00057 * 00058 * 00059 * implemented as a mex file 00060 * 00061 * 00062 */ 00063 00064 #ifndef _mexfn_clean_edge_label_h_ 00065 #define _mexfn_clean_edge_label_h_ 00066 00067 // function entry point 00068 mexfn_lib_t main_clean_edge_label; 00069 00070 // argument counts 00071 #define MXT_cel_NARGIN_MIN 5 00072 #define MXT_cel_NARGIN_MAX 5 00073 #define MXT_cel_NARGOUT_MIN 1 00074 #define MXT_cel_NARGOUT_MAX 2 00075 00076 // input argument numbers 00077 #define MXT_cel_ARG_image 0 00078 #define MXT_cel_ARG_center 1 00079 #define MXT_cel_ARG_delta 2 00080 #define MXT_cel_ARG_fill 3 00081 #define MXT_cel_ARG_mode 4 00082 00083 // output argument numbers 00084 #define MXT_cel_ARG_res 0 00085 #define MXT_cel_ARG_nclean 1 00086 00087 00088 #endif // _mexfn_clean_edge_label_h_ 00089 00090 // (file ends)