我正在对实时视频流进行一些边缘检测:
- (void)processImage:(Mat&)image;
{
cv::resize(image, smallImage, cv::Size(288,352), 0, 0, CV_INTER_CUBIC);
edgeDetection(smallImage);
cv::resize(smallImage, image, image.size(), 0, 0, CV_INTER_LINEAR);
}
edgeDetection
进行了相当重的工作,在视频帧大小为1280x720时帧率非常低。添加 resize
调用显著地降低了帧率,这与我的期望完全相反。这是因为缩放操作很慢,还是我做错了什么?
smallImage
在头文件中声明如下:
@interface CameraController : UIViewController
<CvVideoCameraDelegate>
{
Mat smallImage;
}
它没有初始化,但运行得很好。