Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 带内核的OpenCV Filter2D iPhone_Ios_Opencv_Computer Vision - Fatal编程技术网

Ios 带内核的OpenCV Filter2D iPhone

Ios 带内核的OpenCV Filter2D iPhone,ios,opencv,computer-vision,Ios,Opencv,Computer Vision,我正在尝试为iOS上的OpenCV定义一个自定义内核。我似乎找不到一个明确的方法来做这件事。我看到其他一些人使用的方法就是这个,我似乎无法让它完全按照我想要的方式工作。我使用的cVVideoCamera代表如下: - (void)processImage:(Mat&)image; { // Do some OpenCV stuff with the image double m[] = {1.0, 1.0, 1.0, 2.0, 2.0, 2

我正在尝试为iOS上的OpenCV定义一个自定义内核。我似乎找不到一个明确的方法来做这件事。我看到其他一些人使用的方法就是这个,我似乎无法让它完全按照我想要的方式工作。我使用的cVVideoCamera代表如下:

- (void)processImage:(Mat&)image;
{
// Do some OpenCV stuff with the image

  double m[] =    {1.0, 1.0, 1.0,
                  2.0, 2.0, 2.0,
                  1.0, 1.0, 1.0};
  cv::Mat kernel = cv::Mat(3, 3, CV_32FC2, m);
  int ddepth = -1;

  cv::filter2D(image, image, ddepth, kernel);

}

这似乎不起作用。我认为这可能是因为cv:Mat构造函数(cv_32FC2)中的类型。有人知道iPhone摄像头通常应该是什么吗?或者还有其他问题吗?

类型CV_32FC2不是指要传递的映像的类型,而是指正在生成的内核中的类型。将m的类型更改为浮动,并将CV_32FC2更改为CV_32f,它应该可以工作。如果性能有问题,您也应该像Brad Larson建议的那样尝试一下他的框架。

如果可以,我可以建议OpenCV的替代方案:。GPUImage3x3ConvolutionFilter允许您指定这样的内核,它提供的GPU加速使它在处理来自摄像头的视频时比OpenCV快得多。事实上,我已经使用GPUImage完成了这项工作!我正在寻找一种跨平台的方法(Android和iOS),所以我正在寻找一种在iOS上复制它的方法。如果您曾经将GPUImage移动到Android,请告诉我;)谢谢,这似乎有效!如上所述,我不使用GPUImage的唯一原因是因为我正在尝试重新使用Android的代码。谢谢你!