3、高斯滤波
3.1、头文件
#ifndef RASTERGAUSSIANBLUR_H
#define RASTERGAUSSIANBLUR_H
#include "seed_rastercore/irasterprocess.h"
BEGIN_DOX_NAMESPACE
class RasterGaussianBlur
: public IRasterProcess
{
REGISTER_ACTUALIZE(RasterGaussianBlur, IRasterProcess)
public:
RasterGaussianBlur();
~RasterGaussianBlur();
virtual QString processName();
virtual int2 processBlockSize(int, int);
virtual int3 saveRasterSize(int, int, int);
virtual IntsArray processBandMap(const QStringList &);
virtual bool rasterProcess(const cv::Mat &, cv::Mat &);
};
END_DOX_NAMESPACE
#endif
3.2、源文件
#include "rastergaussianblur.h"
#include "opencvhdr.h"
BEGIN_DOX_NAMESPACE
RasterGaussianBlur::RasterGaussianBlur()
: IRasterProcess()
{
}
RasterGaussianBlur::~RasterGaussianBlur()
{
}
QString RasterGaussianBlur::processName()
{
return QS("高斯滤波");
}
int2 RasterGaussianBlur::processBlockSize(int xSize, int ySize)
{
return int2(xSize / 2, ySize / 2);
}
bool RasterGaussianBlur::rasterProcess(const Mat &srcMat, Mat &desMat)
{
GaussianBlur(srcMat, desMat, cv::Size(5, 5), 0, 0);
return true;
}
int3 RasterGaussianBlur::saveRasterSize(int xSize, int ySize, int zSize)
{
return int3(xSize, ySize, zSize);
}
IntsArray RasterGaussianBlur::processBandMap(const QStringList &bandNames)
{
IntsArray bandMaps;
for(int idx = 0; idx < bandNames.length(); ++idx)
{
IntArr bMaps; bMaps << (idx + 1); bandMaps.append(bMaps);
}
return bandMaps;
}
END_DOX_NAMESPACE
4、注册类
#ifndef MODULEMACRO_CORE_H
#include "core/modulemacro.h"
#endif
#include "rastergaussianblur.h"
BEGIN_DOX_NAMESPACE
BEGIN_DEFINE_DOX_MODULE("RasterFilter")
XDEFINE_CLASSMAP_ENTRY_NORMAL(RasterGaussianBlur)
FINISH_DEFINE_DOX_MODULE()
END_DOX_NAMESPACE
5、添加函数
void rasterGaussianBlur()
{
Object<IRasterProcess> iRasterProcess("RasterFilter.RasterGaussianBlur");
Object<IRasterProcessManager> iRaster(NIL); iRaster->rasterProcess(iRasterProcess);
}
6、注册命令
bool initApplication()
{
Object<IDoxCommand> iCommand(NIL);
iCommand->registerCommand("RasterFilter", "rasterGaussianBlur", rasterGaussianBlur);
return true;
}
7、执行功能
7.1、选择数据
7.2、选择保存的文件
7.3、浏览数据