-
大小: 23KB文件類型: .cpp金幣: 2下載: 1 次發(fā)布日期: 2021-11-15
- 語言: C/C++
- 標(biāo)簽:
資源簡介
saliency圖像顯著性特征提取,多空間顏色特征提取,顏色直方圖
代碼片段和文件信息
#include?“stdafx.h“
#include?“ExtractFeature.h“
#include?
#include?
#include?“opencv2/imgproc/imgproc.hpp“
#include?
#include?
#include?
#include
using?namespace?std;
using?namespace?cv;
ExtractFeature::ExtractFeature(){
}
ExtractFeature::ExtractFeature(string?Path?int?idx?int?saliency?int?RGB?int?OPP?int?rg?int?HSV?int?LAB){
//ExtractFeature::srcImage?=?srcImage;
ExtractFeature::Path?=?Path;
ExtractFeature::HSV?=?HSV;
ExtractFeature::idx?=?idx;
ExtractFeature::saliency?=?saliency;
ExtractFeature::RGB?=?RGB;
ExtractFeature::OPP?=?OPP;
ExtractFeature::rg?=?rg;
ExtractFeature::LAB?=?LAB;
}
ExtractFeature::~ExtractFeature()
{
}
void?ExtractFeature::fft2(IplImage?*src?IplImage?*dst)
{???//實部、虛部
IplImage?*image_Re?=?0?*image_Im?=?0?*Fourier?=?0;
//???int?i?j;
image_Re?=?cvCreateImage(cvGetSize(src)?IPL_DEPTH_64F?1);??//實部
//Imaginary?part
image_Im?=?cvCreateImage(cvGetSize(src)?IPL_DEPTH_64F?1);??//虛部
//2?channels?(image_Re?image_Im)
Fourier?=?cvCreateImage(cvGetSize(src)?IPL_DEPTH_64F?2);
/************************************************************************/
/*
void?cvConvertScale(?const?CvArr*?src?CvArr*?dst?double?scale=1?double?shift=0?);
src
原數(shù)組.
dst
輸出數(shù)組
scale
比例因子.
shift
原數(shù)組元素按比例縮放后添加的值。
函數(shù)?cvConvertScale?有多個不同的目的因此就有多個意義,
函數(shù)按比例從一個數(shù)組中拷貝元素到另一個元素這種操作是最先執(zhí)行的,
或者任意的類型轉(zhuǎn)換,正如下面的操作:
dst(I)=src(I)*scale?+?(shiftshift...)
多通道的數(shù)組對各個地區(qū)通道是獨立處理的。
*/
/************************************************************************/
//實部的值初始設(shè)為源圖像,虛部的值初始設(shè)為0
//?Real?part?conversion?from?u8?to?64f?(double)
cvConvertScale(src?image_Re?1?0);
//?Imaginary?part?(zeros)
cvZero(image_Im);
//?Join?real?and?imaginary?parts?and?stock?them?in?Fourier?image
cvMerge(image_Re?image_Im?0?0?Fourier);
//?Application?of?the?forward?Fourier?transform
cvDFT(Fourier?dst?CV_DXT_FORWARD);
cvReleaseImage(&image_Re);
cvReleaseImage(&image_Im);
cvReleaseImage(&Fourier);
}
Mat?ExtractFeature::setSliency(){
//string?imagePath?=?“G:\\工程\\MATLAB工程\\annotation_corel\\eccv_2002_image_files\\1000\\1000.jpeg“;
//amplitude和phase分別是圖像的振幅譜和相位譜
int?i?j?nRow?nCol;
//float?range[2];
//src?=?cvLoadImage(imagePath.c_str()?1);
Mat?salD;
if?(saliency?==?1){
IplImage?*ImageRe?*ImageIm?*Fourier?*Inverse?*LogAmplitude?*Sine?*Cosine?*src;
IplImage?*Saliency?*Residual;
IplImage?*tmp1?*tmp2?*tmp3;
double?minNum?=?0?maxNum?=?0?scale?shift;
src?=?cvLoadImage(Path.c_str()?0);
//顯著性計算
//參考論文:Saliency?Detection:?A?Spectral?Residual?Approach
//加載源圖像,第二個參數(shù)為0表示將輸入的圖片轉(zhuǎn)為單通道,大于0為三通道
//src?=?cvLoadImage(imagePath.c_str()?0);
//注意Fourier是一個兩通道的圖像,一個通道為實部,一個為虛部
Fourier?=?cvCreateImage(cvGetSize(src)?IPL_DEPTH_64F?2);
Inverse?=?cvCreateImage(cvGetSize(src)?IPL_DEPTH_64F?2);
//頻譜的實部
Imag
評論
共有 條評論