#include "header/strategies/Rejection.h" #include "MainWindow.h" #include #include Rejection::Rejection(const Context context, const QString kernelPath) : IProcessStrategy(context, kernelPath, "Rejection"), _kernelFunctor(KernelFunctor(_kernel)) { } void Rejection::cpuProcess(ScenGenOutput_t parameters) { _rejectionThr = parameters.rejectThreshold.value; } void Rejection::finalize() { } void Rejection::ReadParams(QString path, ScenGenOutput_t *params) { QFile file(path); file.open(QIODevice::ReadOnly); char data[8192]; //first line is extra file.readLine(data, 8192); QString str(data); str = str.remove(str.length() - 1, 1); auto sl = str.split(","); //decode here /***scenario specific code***/ int index = 0; auto temp = sl[index++].PARSE; update_field(¶ms->rejectThreshold, INP2MYFLT(temp)); /***End of scenario specific code***/ } Image* Rejection::processKernel(Image *frames) { Context context = _openCLHelper.getContext(); auto format = frames->getImageInfo(); auto width = frames->getImageInfo(); auto height = frames->getImageInfo(); auto imageOutput = new Image2D(context, CL_MEM_READ_WRITE, ImageFormat(format.image_channel_order, format.image_channel_data_type), width, height); cl::EnqueueArgs eargs(MainWindow::getInstance()->CLQueue, cl::NDRange(width, height)); _openCLHelper.runKernelFunctor(_kernelFunctor, eargs, *static_cast(frames), *imageOutput, _kernelParameters); delete frames; return imageOutput; }