Opencv IPP滤波器功能
我是IPP新手。我的问题是,我在Intel IPP中编写了一段用于过滤图像的代码,但我的代码工作不正常。我每次都使用相同的图像作为输入。这是我的密码。怎么了Opencv IPP滤波器功能,opencv,intel-ipp,Opencv,Intel Ipp,我是IPP新手。我的问题是,我在Intel IPP中编写了一段用于过滤图像的代码,但我的代码工作不正常。我每次都使用相同的图像作为输入。这是我的密码。怎么了 Mat img = imread("image.jpg", IMREAD_GRAYSCALE); Mat outImg = img.clone(); int step = img.cols; //pitch IppiSize size; size.width = img.cols; // size of IPP images is th
Mat img = imread("image.jpg", IMREAD_GRAYSCALE);
Mat outImg = img.clone();
int step = img.cols; //pitch
IppiSize size;
size.width = img.cols; // size of IPP images is the same
size.height = img.rows; // as read image img
vector<Ipp8u> aBuffer(1);
ippiFilterSharpenBorder_8u_C1R((const Ipp8u*)&img.data[0], step, (Ipp8u*)&outImg.data[0], step, size, ippMskSize5x5, ippBorderConst, 0, aBuffer.data());
imshow("Out", outImg);
Mat img=imread(“image.jpg”,imread\u灰度);
Mat outImg=img.clone();
int step=img.cols//抛
ipisize大小;
size.width=img.cols;//IPP图像的大小相同
size.height=img.rows;//读图像img
向量aBuffer(1);
IPPIFilterGripperBorder_8u_C1R((常数Ipp8u*)和img.data[0],步长,(Ipp8u*)和outImg.data[0],步长,大小,ippMskSize5x5,IPPPORDECONST,0,aBuffer.data());
imshow(“Out”,outImg);
结果/错误/问题是什么?输入图像和输出图像相同。没有什么变化。我的意思是什么也没发生。宽度应该是cols和高度行。缓冲区是用来做什么的?可能大小1有点低?根据文档,您需要通过调用IPPIFilterGripperBorderGetBufferSize获得工作缓冲区大小,并根据该大小分配缓冲区。然后,在通话后检查IPPIfilter\u 8u\u C1R状态。验证“步骤”是否正常。它是否等于cols*elemSize()?。米卡是对的宽度=列,高度=行。我修复了列和行,并检查了文档,您是对的,我们必须使用IPPIFilterGripperBorderGetBufferSize函数。但我不明白如何在代码块中重新定义函数?iss缓冲区的作用是什么?