int main( int argc, char* argv[] ) { // load an image IplImage* image = cvLoadImage("motor.jpg"); ///-- extract global image descriptors -- // create a Frame object (see include/Frame.h) // allocate memory for 3-channel color and 1-channel gray image and mask Frame* frame = new Frame( image->width, image->height, true, true, true); // set the image of the frame frame->setImage(image); // compute Color Structure descriptor XM::ColorStructureDescriptor* csd = Feature::getColorStructureD(frame, 32); // write to screen for(unsigned int i = 0; i < csd->GetSize(); i++) std::cout << (int)csd->GetElement(i) << " " ; std::cout << std::endl; // release descriptor delete csd; // release the images.. delete frame; cvReleaseImage(&image); return 0; }
void LocalColorFeat::localColorCb( const visor::detEntityArray::ConstPtr& msg ){ cv_bridge::CvImagePtr cv_ptr; lcolor_.object_color.clear(); lcolor_.header.stamp = msg->header.stamp; lcolor_.object_count = msg->count; cinfo_.header.stamp = msg->header.stamp; cinfo_.size = 64; //msg->count; for (int i=0; i<msg->count; i++) { try { cv_ptr = cv_bridge::toCvCopy(msg->entity[i], sensor_msgs::image_encodings::BGR8); // ROS_WARN("OBJECT %d: ", i); Frame* frame = new Frame( cv_ptr->image ); XM::ColorStructureDescriptor* csd = Feature::getColorStructureD(frame, cinfo_.size); cinfo_.desc.clear(); for(int i = 0; i < csd->GetSize(); i++) { // std::cout << (int)csd->GetElement(i) << " "; // Assign each element to cinfo_.desc cinfo_.desc.push_back((int)csd->GetElement(i)); } // std::cout << std::endl; delete csd; lcolor_.object_color.push_back(cinfo_); } catch (cv_bridge::Exception& e) { ROS_ERROR("LOCAL COLOR <- cv_bridge exception: %s", e.what()); return; } } pub_.publish(lcolor_); }
Descriptor ColorStructure::extract_(MyImage *image, bool makeVisRep, Magick::Image *repr){ cv::Mat &img = *image->getOpenCVMat(); Frame* frame = new Frame(img); XM::ColorStructureDescriptor *ehd = Mpeg7Feature::getColorStructureD(frame, 64); Descriptor desc; for(size_t i = 0; i < ehd->GetSize(); ++i) desc.push_back((float) ehd->GetElement(i)); return desc; }
// Color Structure void FexWrite::computeWriteCSD( Frame* frame, int descSize ) { if(!frame) return; // compute the descriptor XM::ColorStructureDescriptor* csd = Feature::getColorStructureD(frame, descSize); // write to screen for(unsigned int i = 0; i < csd->GetSize(); i++) std::cout << (int)csd->GetElement(i) << " " ; std::cout << std::endl; // release descriptor delete csd; }