From 0efc775370d2ff91927d1b383a99eab78dc5538f Mon Sep 17 00:00:00 2001 From: leochanj Date: Wed, 21 Oct 2020 01:52:54 -0400 Subject: debug libextra and remove matlab FLUSH_CACHES --- .../texture_synthesis/src/matlab/edges-orig.c | 494 --------------------- 1 file changed, 494 deletions(-) delete mode 100755 SD-VBS/benchmarks/texture_synthesis/src/matlab/edges-orig.c (limited to 'SD-VBS/benchmarks/texture_synthesis/src/matlab/edges-orig.c') diff --git a/SD-VBS/benchmarks/texture_synthesis/src/matlab/edges-orig.c b/SD-VBS/benchmarks/texture_synthesis/src/matlab/edges-orig.c deleted file mode 100755 index 1f6a98b..0000000 --- a/SD-VBS/benchmarks/texture_synthesis/src/matlab/edges-orig.c +++ /dev/null @@ -1,494 +0,0 @@ -/* -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; File: edges.c -;;; Author: Eero Simoncelli -;;; Description: Boundary handling routines for use with convolve.c -;;; Creation Date: Spring 1987. -;;; MODIFIED, 6/96, to operate on double float arrays. -;;; MODIFIED by dgp, 4/1/97, to support THINK C. -;;; ---------------------------------------------------------------- -;;; Object-Based Vision and Image Understanding System (OBVIUS), -;;; Copyright 1988, Vision Science Group, Media Laboratory, -;;; Massachusetts Institute of Technology. -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -*/ - -/* -This file contains functions which determine how edges are to be -handled when performing convolutions of images with linear filters. -Any edge handling function which is local and linear may be defined, -except (unfortunately) constants cannot be added. So to treat the -edges as if the image is surrounded by a gray field, you must paste it -into a gray image, convolve, and crop it out... -The main convolution function is called internal_filter and is defined -in the file convolve.c. The idea is that the convolution function -calls the edge handling function which computes a new filter based on -the old filter and the distance to the edge of the image. For -example, reflection is done by reflecting the filter through the -appropriate axis and summing. Currently defined functions are listed -below. -*/ - -/* -#define DEBUG -*/ - -#include -#include -#include -#include "convolve.h" - -#define sgn(a) ( ((a)>0)?1:(((a)<0)?-1:0) ) -#define clip(a,mn,mx) ( ((a)<(mn))?(mn):(((a)>=(mx))?(mx-1):(a)) ) - -int reflect1(), reflect2(), repeat(), zero(), Extend(), nocompute(); -int ereflect(), predict(); - -/* Lookup table matching a descriptive string to the edge-handling function */ -#if !THINK_C - static EDGE_HANDLER edge_foos[] = - { - { "dont-compute", nocompute }, /* zero output for filter touching edge */ - { "zero", zero }, /* zero outside of image */ - { "repeat", repeat }, /* repeat edge pixel */ - { "reflect1", reflect1 }, /* reflect about edge pixels */ - { "reflect2", reflect2 }, /* reflect image, including edge pixels */ - { "extend", Extend }, /* extend (reflect & invert) */ - { "predict", predict }, /* predict based on portion covered by filt */ - { "ereflect", ereflect }, /* orthogonal QMF reflection */ - }; -#else - /* - This is really stupid, but THINK C won't allow initialization of static variables in - a code resource with string addresses. So we do it this way. - The 68K code for a MATLAB 4 MEX file can only be created by THINK C. - However, for MATLAB 5, we'll be able to use Metrowerks CodeWarrior for both 68K and PPC, so this - cludge can be dropped when we drop support for MATLAB 4. - Denis Pelli, 4/1/97. - */ - static EDGE_HANDLER edge_foos[8]; - - void InitializeTable(EDGE_HANDLER edge_foos[]) - { - static int i=0; - - if(i>0) return; - edge_foos[i].name="dont-compute"; - edge_foos[i++].func=nocompute; - edge_foos[i].name="zero"; - edge_foos[i++].func=zero; - edge_foos[i].name="repeat"; - edge_foos[i++].func=repeat; - edge_foos[i].name="reflect1"; - edge_foos[i++].func=reflect1; - edge_foos[i].name="reflect2"; - edge_foos[i++].func=reflect2; - edge_foos[i].name="extend"; - edge_foos[i++].func=Extend; - edge_foos[i].name="predict"; - edge_foos[i++].func=predict; - edge_foos[i].name="ereflect"; - edge_foos[i++].func=ereflect; - } -#endif - -/* -Function looks up an edge handler id string in the structure above, and -returns the associated function -*/ -fptr edge_function(char *edges) - { - int i; - -#if THINK_C - InitializeTable(edge_foos); -#endif - for (i = 0; i1) OR (x_pos<-1) OR (y_pos>1) OR (y_pos<-1) ) - for (i=0; i0)?(x_pos-1):((x_pos<0)?(x_pos+1):0)); - int y_start = x_dim * ((y_pos>0)?(y_pos-1):((y_pos<0)?(y_pos+1):0)); - int i; - - for (i=0; i= 0) AND (y_res < filt_sz)) - for (x_filt=y_filt, x_res=x_start; - x_filt= 0) AND (x_res < x_dim)) - result[y_res+x_res] = filt[x_filt]; - return(0); - } - -/* -------------------------------------------------------------------- -repeat() - repeat edge pixel. Continuous, but content is usually -different from image. -*/ - -int repeat(filt,x_dim,y_dim,x_pos,y_pos,result,f_or_e) - register double *filt, *result; - register int x_dim; - int y_dim, x_pos, y_pos, f_or_e; - { - register int y_filt,x_filt, y_res,x_res; - int filt_sz = x_dim*y_dim; - int x_start = ((x_pos>0)?(x_pos-1):((x_pos<0)?(x_pos+1):0)); - int y_start = x_dim * ((y_pos>0)?(y_pos-1):((y_pos<0)?(y_pos+1):0)); - int i; - - for (i=0; i=0)?((y_res=0)?((x_res0)?(x_dim-1):0; - register int y_base = (y_pos>0)?(x_dim*(y_dim-1)):0; - int filt_sz = x_dim*y_dim; - int x_edge_dist = (x_pos>0)?(x_pos-x_dim-1):(x_pos+1); - int y_edge_dist = x_dim * ((y_pos>0)?(y_pos-y_dim-1):(y_pos+1)); - int i; - - #ifdef DEBUG - printf("(%d,%d) ",y_pos,x_pos); - if (x_pos==0) printf("\n"); - #endif - - for (i=0; i0)?(x_dim-1):0; - register int y_base = (y_pos>0)?(x_dim*(y_dim-1)):0; - int x_edge_dist = (x_pos>0)?(x_pos-x_dim):((x_pos<0)?(x_pos+1):0); - int y_edge_dist = x_dim * ((y_pos>0)?(y_pos-y_dim):((y_pos<0)?(y_pos+1):0)); - int i; - int mx_pos = (x_dim/2)+1; - int my_pos = (y_dim/2)+1; - - #ifdef DEBUG - printf("(%d,%d) ",y_pos,x_pos); - if (x_pos==0) printf("\n"); - #endif - - for (i=0; i0)?(x_dim-1):0; - register int y_base = (y_pos>0)?(x_dim*(y_dim-1)):0; - int x_edge_dist = (x_pos>0)?(x_pos-x_dim):((x_pos<-1)?(x_pos+1):0); - int y_edge_dist = x_dim * ((y_pos>0)?(y_pos-y_dim):((y_pos<-1)?(y_pos+1):0)); - int i; - int mx_pos = (x_dim/2)+1; - int my_pos = (y_dim/2)+1; - - for (i=0; i0)?(x_pos-1):((x_pos<0)?(x_pos+1):0)); - int y_start = x_dim * ((y_pos>0)?(y_pos-1):((y_pos<0)?(y_pos+1):0)); - int i; - - for (i=0; i= 0) AND (y_res < filt_sz)) - for (x_filt=y_filt, x_res=x_start; - x_filt= 0) AND (x_res < x_dim)) - { - result[y_res+x_res] = filt[x_filt]; - taps_used += ABS(filt[x_filt]); - } - printf("TU: %f\n",taps_used); - if (f_or_e IS FILTER) - { - /* fraction = ( (double) filt_sz ) / ( (double) taps_used ); */ - for (i=0; i0)?(x_dim-1):0; - register int y_base = x_dim * ( (y_pos>0)?(y_dim-1):0 ); - int filt_sz = x_dim*y_dim; - int x_edge_dist = (x_pos>1)?(x_pos-x_dim):((x_pos<-1)?(x_pos+1):0); - int y_edge_dist = x_dim * ( (y_pos>1)?(y_pos-y_dim):((y_pos<-1)?(y_pos+1):0) ); - int i; - double norm,onorm; - - for (i=0; i