Definition at line 1071 of file InterestPointFeature.h. References Impala::Core::Feature::CalculateFISTDescriptors(), Impala::Core::Feature::CalculateRegionDescriptors(), Impala::Core::Feature::CalculateSurfDescriptors(), Impala::Core::Geometry::InterestPointList::EraseAndDelete(), Impala::Core::Feature::PointDescriptorTable::FromPointList(), mSurfParams, Impala::Core::Table::Table::SetEmpty(), and Impala::Core::Feature::PointDescriptorTable::ToPointList(). Referenced by FindInterestPoints(). 01074 { 01075 if((descriptorMode == "huesift") || (descriptorMode == "huefist")) 01076 { 01077 CalculateFISTDescriptors(inputNoBorder, pointData, "sift"); 01078 InterestPointList outputPointList; 01079 pointData->ToPointList(outputPointList); 01080 CalculateRegionDescriptors(inputNoBorder, outputPointList, 01081 "huehistogram"); 01082 01083 // now fix the range of hue... 01084 for(InterestPointList::iterator iter = outputPointList.begin(); 01085 iter != outputPointList.end(); iter++) 01086 { 01087 InterestPoint* point = *iter; 01088 for(int i = 128; i < point->mDescriptor.size(); i++) 01089 { 01090 point->mDescriptor[i] = 01091 static_cast<int>(point->mDescriptor[i] * 512); 01092 } 01093 } 01094 pointData->SetEmpty(); 01095 pointData->FromPointList(outputPointList); 01096 outputPointList.EraseAndDelete(); 01097 } 01098 else if((descriptorMode.size() >= 4) && 01099 (descriptorMode.substr(descriptorMode.size()-4,4) == "fist")) 01100 { 01101 CalculateFISTDescriptors 01102 (inputNoBorder, pointData, descriptorMode); 01103 } 01104 else if((descriptorMode.size() >= 4) && 01105 (descriptorMode.substr(descriptorMode.size()-4,4) == "sift")) 01106 { 01107 CalculateFISTDescriptors 01108 (inputNoBorder, pointData, descriptorMode); 01109 } 01110 else if((descriptorMode.size() >= 4) && 01111 (descriptorMode.substr(descriptorMode.size()-4,4) == "surf")) 01112 { 01113 InterestPointList outputPointList; 01114 pointData->ToPointList(outputPointList); 01115 CalculateSurfDescriptors 01116 (inputNoBorder, outputPointList, descriptorMode, mSurfParams[0], 01117 mSurfParams[1], mSurfParams[2]); 01118 pointData->SetEmpty(); 01119 pointData->FromPointList(outputPointList); 01120 outputPointList.EraseAndDelete(); 01121 } 01122 else 01123 { 01124 InterestPointList outputPointList; 01125 pointData->ToPointList(outputPointList); 01126 CalculateRegionDescriptors 01127 (inputNoBorder, outputPointList, descriptorMode); 01128 pointData->SetEmpty(); 01129 pointData->FromPointList(outputPointList); 01130 outputPointList.EraseAndDelete(); 01131 } 01132 }
Here is the call graph for this function:
|