谱残差方法只对背景单一,目标突出的图像效果好。不适用于复杂纹理背景的图像。下面是c++结合opencv库实现的代码:
#include "stdafx.h"
#include <opencv2\opencv.hpp>
#include <cv.h>
#include <highgui.h>
using namespace cv;
using namespace std;
int _tmain(int argc,char** argv)
{
//读取图片
const char *filename = (argc >=2 ? argv[1]:"1.jpg" );
Mat I = imread(filename);
if (I.empty())
{
return -1;
}
//彩色图转成灰色图
if (I.channels()==3)
{
cvtColor(I,I,CV_RGB2GRAY);
}
Mat planes[] = { Mat_<float>(I), Mat::