IPP如何改进OpenCV应用程序?我该如何整合它
How can IPP improve OpenCV application? And how can I integrate it?
我想知道:
- "英特尔IPP"如何加快OpenCV应用程序的速度
- 如何将其集成到已经编写好的OpenCV应用程序中
我没有立即找到答案(这份文件并没有说太多),但最终我发现了这个问题,这个答案有一个明确的例子,可以回答问题1。并且部分地为2。
然而,我有一个观察结果:
(const Ipp8u*)&img.data[0]
铸造是否被认为效率低下- 我想改进SURF描述符解释并行计算和矢量化。IPP能帮我吗
- 在目标机器上是否存在IPP的两种情况下,我如何开发我的OpenCV
我可以在一个控制台应用程序中与您分享OpenCV和IPP函数的使用示例。正如您所看到的,OpenCV Mat可以用于IPP函数,这些函数通常比IPP函数更快。
#include <Windows.h>
#include <Vfw.h>
#include <string>
#include <iostream>
#include "opencv2corecore.hpp"
#include "opencv2imgprocimgproc.hpp"
#include "opencv2imgcodecsimgcodecs.hpp"
#include "opencv2highguihighgui.hpp"
#include <ipp.h>
#include <ipps.h>
#include <ippi.h>
int _tmain(int argc, _TCHAR* argv[])
{
using namespace std;
using namespace cv;
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();
}
相关文章:
- 函数何时会在c++中包含stack_Unwind_Resume调用
- Python中的for循环与C++有何不同
- 在C++中释放内存期间,迭代器与指针有何不同
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- 类中的 C++ int 被设置为值,似乎不知从何而来
- -fvisibility-inline-hidden 与 gcc 中的 -fvisibility=hidden 有何不同
- 收益率和回报有何不同?
- 覆盖私有功能,它与受保护功能有何不同?
- 擦除删除成语的性能增益从何而来
- 无论代码长度如何,以下代码的内存要求有何不同?
- "virtual"对C++析构函数有何影响?
- 如果我对"while"块发表评论,为什么程序会死机?其中的"yield"线有何影响?
- 系统时间从何而来?
- stl::unordered_map 和 stl::vector 的销毁有何不同
- C++ 友元函数在内存位置上有何不同?
- 为什么我可以在不链接任何额外库的情况下包含 sys/*.h
- C 是否具有接口类概念,如果它在那里,那么它与Java接口类别有何不同
- std::u8string与std::string有何不同?
- 功能和变量从何而来
- 两种类型转换有何不同?