Gist特征在论文《Evaluation of GIST descriptors for web-scale image search》中被用到,跑了一下作者提供的代码,主要是C代码,接受的图像格式是PPM,详细介绍见:http://www.cnblogs.com/justany/archive/2012/12/06/2804211.html
为了使用方便,楼主将图像的读取改为opencv的形式,这样一般格式的图片都能够来提取Gist特征了,代码如下:
static color_image_t *load_img(const char *fname) {
cv::Mat img = cv::imread(fname,1);
color_image_t *im = color_image_new(img.cols,img.rows);
//im->c1 = img.ptr<float>(0);
//im->c2 = img.ptr<float>(1);
//im->c3 = img.ptr<float>(2);
for (int i = 0; i<img.rows; i++) {
for (int j =0; j<img.cols; j++) {
im->c1[i*img.cols+j]=(float)img.at<cv::Vec3b>(i,j)[0];
im->c2[i*img.cols+j]=(float)img.at<cv::Vec3b>(i,j)[1];
im->c3[i*img.cols+j]=(float)img.at<cv::Vec3f>(i,j)[2];
}
}
img.release();
return im;
}