Пример #1
0
void Analysis::filterData(PivData *pivData, FilterOptions filterOptions)
{
    // Checking each filtering option and calling external filter functions (included from filters.h)
    if (filterOptions.snr()) snr(pivData,filterOptions);
    if (filterOptions.imageIntensity()) imageIntensity(pivData,filterOptions);
    if (filterOptions.globalRange()) globalRange(pivData,filterOptions);
    if (filterOptions.globalStd()) globalStd(pivData,filterOptions);
    if (filterOptions.local()) localDetect(pivData,filterOptions);
    if (filterOptions.interpolate()) meanInterpolate(pivData, filterOptions);
    if (filterOptions.smoothing()) gaussianBlur(pivData, filterOptions);
}
Пример #2
0
// A simple tester for testing operation of toggling characters via OpenCL
int main(int argc, char *argv[]) {
    if (argc < 4) {
        std::cout << "Specify [CPU|GPU|ACC] <InputBMP> <OutputBMP> <theta_radians>\n";
        return 1;
    }
    // Load source image from the given file
    BitmapImage srcImg;
    srcImg.load(argv[2]);
    // Create the OpenCL command queue for a given device
    ClCmdQueue queue(getDevType(argv[1]));
    // Create a kernel and functor using OpenCL kernel code from a file.
    cl::Kernel kernel = queue.loadKernel("batesokr_rotate.cl", "img_rotate");
    cl::NDRange globalRange(srcImg.getWidth(), srcImg.getHeight());
    cl::KernelFunctor vrotate(kernel, queue.getQueue(), cl::NullRange,
                            globalRange, cl::NullRange);
    BitmapImage outImg = clRotate(queue, vrotate, srcImg, atof(argv[4])*(M_PI/180.0f));
    outImg.write(argv[3]);
    return 0;
}
Пример #3
0
void MgClKernel::run()
{
    if(!environment())
        return;

    if(!localRange())
        return;


    if(!d_ptr->arguments.size())
        return;

    if(!valid())
        return;

    Q_EMIT runStarted();

    cl::KernelFunctor functor = d_ptr->kernel.bind(
                d_ptr->environment->d_ptr->commandQueue,
                createRange(offsetRange()),
                createRange(localRange()),
                createRange(globalRange())
                );

    switch (d_ptr->arguments.size()) {

    case 1:
        functor();
        break;
    case 2:
        functor();
        break;

    case 3:
        functor();
        break;
    case 4:
        functor();
        break;
    case 5:
        functor();
        break;
    case 6:
        functor();
        break;
    case 7:
        functor();
        break;
    case 8:
        functor();
        break;
    case 9:
        functor();
        break;
    case 10:
        functor();
        break;
    case 11:
        functor();
        break;
    case 12:
        functor();
        break;
    case 13:
        functor();
        break;
    case 14:
        functor();
        break;
    case 15:
        functor();
        break;
    default:
        break;
    }


    Q_EMIT runFinished();

}