• 使用OpenCL提升OpenCV图像处理性能 | speed up opencv image processing with OpenCL


    本文首发于个人博客https://kezunlin.me/post/59afd8b3/,欢迎阅读最新内容!

    speed up opencv image processing with OpenCL

    Guide

    OpenCL is a framework for writing programs that execute on these heterogenous platforms. The developers of an OpenCL library utilize all OpenCL compatible devices (CPUs, GPUs, DSPs, FPGAs etc) they find on a computer / device and assign the right tasks to the right processor.
    Keep in mind that as a user of OpenCV library you are not developing any OpenCL library. In fact you are not even a user of the OpenCL library because all the details are hidden behind the transparent API/TAPI.

    config

    cmake config by default for compiling OpenCV:

    WITH_OPENCL ON
    

    example

    Mat

    #include "opencv2/opencv.hpp"
    using namespace cv;
     
    int main(int argc, char** argv)
    {
        Mat img, gray;
        img = imread("image.jpg", IMREAD_COLOR);
         
        cvtColor(img, gray, COLOR_BGR2GRAY);
        GaussianBlur(gray, gray,Size(7, 7), 1.5);
        Canny(gray, gray, 0, 50);
         
        imshow("edges", gray);
        waitKey();
        return 0;
    }
    

    UMat

    #include "opencv2/opencv.hpp"
    using namespace cv;
     
    int main(int argc, char** argv)
    {
        UMat img, gray;
        imread("image.jpg", IMREAD_COLOR).copyTo(img);
         
        cvtColor(img, gray, COLOR_BGR2GRAY);
        GaussianBlur(gray, gray,Size(7, 7), 1.5);
        Canny(gray, gray, 0, 50);
         
        imshow("edges", gray);
        waitKey();
        return 0;
    }
    

    UMat with transparent API/TAPI

    Reference

    History

    • 20190626: created.

    Copyright

  • 相关阅读:
    刨析js代码执行机制
    H5离线缓存基础系列
    meta 详解
    如何成长为一名合格的web架构师?
    整理的互联网公司面试趋势
    http协议
    前端现在到底需要什么样的人才
    webpack 4.0 版本的简单使用
    vue的懒加载如何实现?
    Runtime的几个小例子(含Demo)
  • 原文地址:https://www.cnblogs.com/kezunlin/p/11940014.html
Copyright © 2020-2023  润新知