【问题标题】:How can IPP improve OpenCV application? And how can I integrate it?IPP 如何改进 OpenCV 应用?我该如何整合它?
【发布时间】:2017-02-03 18:47:47
【问题描述】:

我想知道:

  1. Intel IPP 如何让 OpenCV 应用程序更快?
  2. 如何将它集成到已经编写的 OpenCV 应用程序中?

我没有立即找到答案(this 文档并没有真正说太多),但最后我发现这个问题的答案有一个明确的例子,它回答了问题 1。部分回答了问题 2。

但是,我有一个观察:

  1. (const Ipp8u*)&img.data[0] 转换是否被认为效率低下?
  2. 我想改进 SURF 描述符以探索并行计算和矢量化。 IPP 可以帮助我吗?
  3. 在目标计算机上是否存在 IPP 的两种情况下,我如何开发我的 OpenCV?

【问题讨论】:

  • 检查例如here...实际上是一堆#ifdef来检查IPP是否启用
  • @Miki 好的,这是有道理的,谢谢。你能看看this的问题吗?我不知道如何修改 OpenCV CMake 以使其与英特尔并行工作室工具一起使用
  • 已经看到...不知道 ;)

标签: c++ opencv parallel-processing computer-vision intel-ipp


【解决方案1】:

我可以与您分享一个在一个控制台应用程序中使用 Open CV anp IPP 功能的示例。如您所见,Open CV Mat 可用于通常比 IPP 函数更快的 IPP 函数。

#include <Windows.h>
#include <Vfw.h>
#include <string>
#include <iostream>


#include "opencv2\core\core.hpp"
#include "opencv2\imgproc\imgproc.hpp"
#include "opencv2\imgcodecs\imgcodecs.hpp"
#include "opencv2\highgui\highgui.hpp"

#include <ipp.h>
#include <ipps.h>
#include <ippi.h>



using namespace std;
using namespace cv;


int _tmain(int argc, _TCHAR* argv[])
{
    Mat img=imread("d:\\MyFolder\\sample_02.jpg");
    Mat grayImg=img.clone();
    cvtColor(img,grayImg,CV_BGR2GRAY);
    Mat outImg = grayImg.clone();
    int step = img.cols;
    const Ipp32s kernel[9] = {-1, 0, 1, -1, 0, 1, -1, 0, 1};
    IppiSize kernelSize = {3,3};
    IppiSize dstRoiSize = {img.cols - kernelSize.width + 1, img.rows - kernelSize.height + 1};
    IppiPoint anchor = {2,2};
    int divisor = 1;

    IppStatus status = ippiFilter_8u_C1R((const Ipp8u*)&grayImg.data[0], step,(Ipp8u*)&outImg.data[0], step, dstRoiSize,kernel, kernelSize, anchor,divisor);
    namedWindow("Source image",CV_WINDOW_FREERATIO);
    imshow("Source image", img);
    namedWindow("Output image",CV_WINDOW_FREERATIO);
    imshow("Output image", outImg);
    waitKey();
    return 0;
}

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    相关资源
    最近更新 更多