Development of orientation-selective simple cell receptive fields (Rishikesh and Venkatesh, 2003)

 Download zip file 
Help downloading and running models
Accession:147929
Implementation of a computational model for the development of simple-cell receptive fields spanning the regimes before and after eye-opening. The before eye-opening period is governed by a correlation-based rule from Miller (Miller, J. Neurosci., 1994), and the post eye-opening period is governed by a self-organizing, experience-dependent dynamics derived in the reference below.
Reference:
1 . Rishikesh N, Venkatesh YV (2003) A computational model for the development of simple-cell receptive fields spanning the regimes before and after eye-opening Neurocomputing 50:125-158
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Neuron or other electrically excitable cell; Synapse;
Brain Region(s)/Organism: Neocortex;
Cell Type(s):
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: C or C++ program;
Model Concept(s): Rate-coding model neurons; Unsupervised Learning; Winner-take-all; Development; Orientation selectivity; Vision;
Implementer(s): Narayanan, Rishikesh [rishi at iisc.ac.in];
#ifndef __IMAGEH
#define __IMAGEH


#include<fstream.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<iostream.h>
#include<errno.h>
#include<stdio.h>
#include"Imgdis.h"

#define MAXGRAY 255.0
#define MINGRAY 0.0


#ifndef __IMAGETY
#define __IMAGETY

typedef unsigned char ** Img ;
typedef double ** DImg ;
typedef float ** FImg ;

struct Imgstr
{
	DImg ima ;
	int xs;
	int ys;
};
#endif


class Image
{
protected :
	
	DImg image ;

	int XSize ;

	int YSize ;
	
	int MEMFLAG ;

	char InFileName[35];

	char OutFileName[35];
public :

	Image();

/******************* BASIC I/O OPERATIONS ******************************/

	void SetImage(Img, int=128 , int=128 );
	void SetImage(DImg , int=128 , int=128 );
	void SetImage(FImg , int=128 , int=128 );
	void SetImage(Imgstr &);
	void LoadImage (char * = NULL);
	void SaveImage (char * = NULL);
	void ReadRas   (char * = NULL);
	void WriteRas  (char * = NULL);
	void SetSize(int=128,int=128);
	void GiveSize ();

/****************** OTHER OPERATIONS **********************************/

   	Image & operator = ( Image & );
	Imgstr GetImage();
	void GetImage(unsigned char **);
	int Height ();
	int Width ();
	Image ScaleRange ();
	void FindMinMax (double &, double&);
	Imgstr Threshold (double x);
	double GetPixel (int x, int y);
	void PutPixel(int x, int y, double val);
	void Initialize(double initval=0);
	void DisplayImage();
	friend Image operator + ( Image&, Image& );
	friend Image operator - ( Image&, Image& );
	friend Image operator * ( Image&, Image& ) ;
	friend Image operator | ( Image&, Image& ) ;
	friend Image operator & ( Image&, Image& );


protected :
	
	void assignInputFile (char * = NULL );
	void assignOutputFile (char * = NULL );
	void memAlloc(int=128,int=128);
};
	
#endif