12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #include <iostream>
- #include "vislearning/features/localfeatures/sift.h"
- #include "vislearning/features/localfeatures/LocalFeatureOpponnentSift.h"
- using namespace OBJREC;
- using namespace std;
- using namespace NICE;
- LocalFeatureOpponnentSift::LocalFeatureOpponnentSift ( const Config *conf ) : LocalFeatureRGBSift ( conf )
- {
- }
- LocalFeatureOpponnentSift::~LocalFeatureOpponnentSift()
- {
- }
- int LocalFeatureOpponnentSift::getDescriptors ( const NICE::ColorImage & cimg,
- VVector & positions,
- VVector & descriptors ) const
- {
- NICE::ColorImage opimg ( cimg.width(), cimg.height() );
- for ( int y = 0; y < ( int ) cimg.height(); y++ )
- {
- for ( int x = 0; x < ( int ) cimg.width(); x++ )
- {
- // Farbkanaele auslesen
- int r = cimg.getPixel ( x, y, 0 );
- int g = cimg.getPixel ( x, y, 1 );
- int b = cimg.getPixel ( x, y, 2 );
- // Transformation in den Opponent Farbraum nach Van de Sande
- int o1 = ( int ) ( ( ( double ) ( r - g ) + 255.0 ) / 2.0 );
- int o2 = ( int ) ( ( ( double ) ( r + g - b ) + 510.0 ) / 4.0 );
- int o3 = ( int ) ( ( double ) ( r + g + b ) / 3.0 );
- opimg.setPixel ( x, y, o1, o2, o3 );
- }
- }
- return LocalFeatureRGBSift::getDescriptors ( opimg, positions, descriptors );
- }
|