Descriptor::Descriptor( const Neuron& neuron, const SphericalMesh& mesh) : m_fSumWeight(0) { m_na = mesh.numAzimuth(); m_nz = mesh.numZenith(); m_nr = mesh.numRadius(); vector<Vector3> points; vector<float> weights; gatherPoints( neuron, points, weights ); Matrixf* pHist = new Matrixf(height(), width()); pHist->setAllZeros(); for( size_t i = 0; i < points.size(); ++i){ vector<Index3D> index; mesh.get_index( points[i].spherical(), index ); for( size_t j = 0; j < index.size(); ++j){ float weight = 1.0f;// weights[i]; assert(weight); (*pHist)( index[j].aidx * m_nz + index[j].zidx, index[j].ridx) += weight; m_fSumWeight += weight; } } m_vHistPtr.push_back( pHist); vFlip(true); hFlip(true); rotate(0); // rotate the original histogram rotate(1); // rotate the virtically flipped one rotate(2); // rotate the horizontically flipped one }
/* In the constructor, we just pass the standard parameters on to QWidget. The menu uses a single slot to simplify the process of adding more items to the options menu. */ ImageViewer::ImageViewer( QWidget *parent, const char *name, int wFlags ) : QWidget( parent, name, wFlags ), conversion_flags( PreferDither ), helpmsg( 0 ) { pickx = -1; picky = -1; clickx = -1; clicky = -1; alloc_context = 0; menubar = new QMenuBar(this); menubar->setSeparator( QMenuBar::InWindowsStyle ); QStrList fmt = QImage::outputFormats(); saveimage = new QPopupMenu( menubar ); savepixmap = new QPopupMenu( menubar ); for (const char* f = fmt.first(); f; f = fmt.next()) { saveimage->insertItem( f ); savepixmap->insertItem( f ); } connect( saveimage, SIGNAL(activated(int)), this, SLOT(saveImage(int)) ); connect( savepixmap, SIGNAL(activated(int)), this, SLOT(savePixmap(int)) ); file = new QPopupMenu( menubar ); menubar->insertItem( "&File", file ); file->insertItem( "&New window", this, SLOT(newWindow()), CTRL+Key_N ); file->insertItem( "&Open...", this, SLOT(openFile()), CTRL+Key_O ); si = file->insertItem( "Save image", saveimage ); sp = file->insertItem( "Save pixmap", savepixmap ); file->insertSeparator(); file->insertItem( "E&xit", qApp, SLOT(quit()), CTRL+Key_Q ); edit = new QPopupMenu( menubar ); menubar->insertItem( "&Edit", edit ); edit->insertItem("&Copy", this, SLOT(copy()), CTRL+Key_C); edit->insertItem("&Paste", this, SLOT(paste()), CTRL+Key_V); edit->insertSeparator(); edit->insertItem("&Horizontal flip", this, SLOT(hFlip()), ALT+Key_H); edit->insertItem("&Vertical flip", this, SLOT(vFlip()), ALT+Key_V); edit->insertItem("&Rotate 180", this, SLOT(rot180()), ALT+Key_R); edit->insertSeparator(); edit->insertItem("&Text...", this, SLOT(editText())); edit->insertSeparator(); t1 = edit->insertItem( "Convert to &1 bit", this, SLOT(to1Bit()) ); t8 = edit->insertItem( "Convert to &8 bit", this, SLOT(to8Bit()) ); t32 = edit->insertItem( "Convert to &32 bit", this, SLOT(to32Bit()) ); options = new QPopupMenu( menubar ); menubar->insertItem( "&Options", options ); ac = options->insertItem( "AutoColor" ); co = options->insertItem( "ColorOnly" ); mo = options->insertItem( "MonoOnly" ); options->insertSeparator(); fd = options->insertItem( "DiffuseDither" ); bd = options->insertItem( "OrderedDither" ); td = options->insertItem( "ThresholdDither" ); options->insertSeparator(); ta = options->insertItem( "ThresholdAlphaDither" ); ba = options->insertItem( "OrderedAlphaDither" ); fa = options->insertItem( "DiffuseAlphaDither" ); options->insertSeparator(); ad = options->insertItem( "PreferDither" ); dd = options->insertItem( "AvoidDither" ); options->insertSeparator(); ss = options->insertItem( "Smooth scaling" ); cc = options->insertItem( "Use color context" ); if ( QApplication::colorSpec() == QApplication::ManyColor ) options->setItemEnabled( cc, FALSE ); options->setCheckable( TRUE ); setMenuItemFlags(); menubar->insertSeparator(); QPopupMenu* help = new QPopupMenu( menubar ); menubar->insertItem( "&Help", help ); help->insertItem( "Help!", this, SLOT(giveHelp()), CTRL+Key_H ); connect( options, SIGNAL(activated(int)), this, SLOT(doOption(int)) ); status = new QLabel(this); status->setFrameStyle( QFrame::WinPanel | QFrame::Sunken ); status->setFixedHeight( fontMetrics().height() + 4 ); setMouseTracking( TRUE ); }
/* In the constructor, we just pass the standard parameters on to QWidget. The menu uses a single slot to simplify the process of adding more items to the options menu. */ FLImageViewer::FLImageViewer( QWidget *parent, const char *name, WFlags fl ) : QWidget( parent, name, fl | Qt::WDestructiveClose | Qt::WType_Dialog | Qt::WShowModal | Qt::WStyle_Maximize | Qt::WStyle_SysMenu ), conversion_flags( PreferDither ), helpmsg( 0 ) { pickx = -1; picky = -1; clickx = -1; clicky = -1; alloc_context = 0; menubar = new QMenuBar( this ); menubar->setSeparator( QMenuBar::InWindowsStyle ); QStrList fmt = QImage::outputFormats(); saveimage = new QPopupMenu( menubar ); savepixmap = new QPopupMenu( menubar ); for ( const char* f = fmt.first(); f; f = fmt.next() ) { saveimage->insertItem( f ); savepixmap->insertItem( f ); } connect( saveimage, SIGNAL( activated( int ) ), this, SLOT( saveImage( int ) ) ); connect( savepixmap, SIGNAL( activated( int ) ), this, SLOT( savePixmap( int ) ) ); file = new QPopupMenu( menubar ); menubar->insertItem( tr( "&Archivo" ), file ); //file->insertItem( "&New window", this, SLOT(newWindow()), CTRL+Key_N ); file->insertItem( tr( "&Abrir..." ), this, SLOT( openFile() ), CTRL + Key_O ); si = file->insertItem( tr( "Guardar imagen" ), saveimage ); sp = file->insertItem( tr( "Guardar pixmap" ), savepixmap ); //file->insertSeparator(); //file->insertItem( "E&xit", qApp, SLOT(quit()), CTRL+Key_Q ); edit = new QPopupMenu( menubar ); menubar->insertItem( tr( "&Edición" ), edit ); edit->insertItem( tr( "&Copiar" ), this, SLOT( copy() ), CTRL + Key_C ); edit->insertItem( tr( "&Pegar" ), this, SLOT( paste() ), CTRL + Key_V ); edit->insertSeparator(); edit->insertItem( tr( "Volteo &Horizontal" ), this, SLOT( hFlip() ), ALT + Key_H ); edit->insertItem( tr( "Volteo &Vertical" ), this, SLOT( vFlip() ), ALT + Key_V ); edit->insertItem( tr( "&Rotar 180" ), this, SLOT( rot180() ), ALT + Key_R ); edit->insertSeparator(); //edit->insertItem("&Text...", this, SLOT(editText())); //edit->insertSeparator(); t1 = edit->insertItem( tr( "Convertir a &1 bit" ), this, SLOT( to1Bit() ) ); t8 = edit->insertItem( tr( "Convertir a &8 bit" ), this, SLOT( to8Bit() ) ); t32 = edit->insertItem( tr( "Convertir a &32 bit" ), this, SLOT( to32Bit() ) ); options = new QPopupMenu( menubar ); menubar->insertItem( tr( "&Opciones" ), options ); ac = options->insertItem( "AutoColor" ); co = options->insertItem( "ColorOnly" ); mo = options->insertItem( "MonoOnly" ); options->insertSeparator(); fd = options->insertItem( "DiffuseDither" ); bd = options->insertItem( "OrderedDither" ); td = options->insertItem( "ThresholdDither" ); options->insertSeparator(); ta = options->insertItem( "ThresholdAlphaDither" ); ba = options->insertItem( "OrderedAlphaDither" ); fa = options->insertItem( "DiffuseAlphaDither" ); options->insertSeparator(); ad = options->insertItem( "PreferDither" ); dd = options->insertItem( "AvoidDither" ); options->insertSeparator(); ss = options->insertItem( tr( "Escalado suavizado" ) ); cc = options->insertItem( tr( "Usar contexto de color" ) ); if ( QApplication::colorSpec() == QApplication::ManyColor ) options->setItemEnabled( cc, FALSE ); options->setCheckable( TRUE ); setMenuItemFlags(); //menubar->insertSeparator(); //QPopupMenu* help = new QPopupMenu( menubar ); //menubar->insertItem( "&Help", help ); //help->insertItem( "Help!", this, SLOT(giveHelp()), CTRL+Key_H ); connect( options, SIGNAL( activated( int ) ), this, SLOT( doOption( int ) ) ); status = new QLabel( this ); status->setFrameStyle( QFrame::WinPanel | QFrame::Sunken ); status->setFixedHeight( fontMetrics().height() + 4 ); setMouseTracking( TRUE ); }