OpenCV For iOS 2: 获取视频并显示轮廓Capture Video
2014-11-04 12:37
519 查看
在上一篇文章中,我们实现了OpenCV的连接,在本文中,我们要使用iOS自带的摄像头来获取视频,并且对视频进行边缘检测。
不废话,直接上解决之道:使用openCV封装好的CvVideoCamera来实现
Step 1:添加import
#import <opencv2/videoio/cap_ios.h>
Step 2:导入一下有用的framework
Step 3:
添加protocol <CvVideoCameraDelegate>
这个delegate可以用来出来获取的视频图像
Step 4:创建一个CvVideoCamera的实例
@property (nonatomic,strong) CvVideoCamera *videoCamera;
Step 5:将videoCamera对象与imageView连接:
self.videoCamera = [[CvVideoCamera alloc] initWithParentView:self.imageView]; self.videoCamera.delegate = self; self.videoCamera.default***CaptureDevicePosition = ***CaptureDevicePositionBack; self.videoCamera.default***CaptureSessionPreset = ***CaptureSessionPreset640x480; self.videoCamera.defaultFPS = 30;只要简单的设置,现在videoCamera已经就绪了,只需要以下命令:[self.videoCamera start];[self.videoCamera stop];进行控制
Step 6:对获取的实时图像进行处理利用protocol的method:- (void)processImage:(cv::Mat &)image{ cv::Mat gray; // Convert the image to grayscale; cv::cvtColor(image, gray, CV_RGBA2GRAY); // Apply Gaussian filter to remove small edges cv::GaussianBlur(gray, gray, cv::Size(5,5), 1.2,1.2); // Calculate edges with Canny cv::Mat edges; cv::Canny(gray, edges, 0, edgeValue); // Fill image with white color image.setTo(cv::Scalar::all(255)); // Change color on edges image.setTo(cv::Scalar(0,128,255,255),edges); // Convert cv::Mat to UIImage* and show the resulting image self.imageView.image = MatToUIImage(image);
}
OK啦,这样我们就可以对实时的视频做边缘检测了:
不废话,直接上解决之道:使用openCV封装好的CvVideoCamera来实现
Step 1:添加import
#import <opencv2/videoio/cap_ios.h>
Step 2:导入一下有用的framework
Step 3:
添加protocol <CvVideoCameraDelegate>
这个delegate可以用来出来获取的视频图像
Step 4:创建一个CvVideoCamera的实例
@property (nonatomic,strong) CvVideoCamera *videoCamera;
Step 5:将videoCamera对象与imageView连接:
self.videoCamera = [[CvVideoCamera alloc] initWithParentView:self.imageView]; self.videoCamera.delegate = self; self.videoCamera.default***CaptureDevicePosition = ***CaptureDevicePositionBack; self.videoCamera.default***CaptureSessionPreset = ***CaptureSessionPreset640x480; self.videoCamera.defaultFPS = 30;只要简单的设置,现在videoCamera已经就绪了,只需要以下命令:[self.videoCamera start];[self.videoCamera stop];进行控制
Step 6:对获取的实时图像进行处理利用protocol的method:- (void)processImage:(cv::Mat &)image{ cv::Mat gray; // Convert the image to grayscale; cv::cvtColor(image, gray, CV_RGBA2GRAY); // Apply Gaussian filter to remove small edges cv::GaussianBlur(gray, gray, cv::Size(5,5), 1.2,1.2); // Calculate edges with Canny cv::Mat edges; cv::Canny(gray, edges, 0, edgeValue); // Fill image with white color image.setTo(cv::Scalar::all(255)); // Change color on edges image.setTo(cv::Scalar(0,128,255,255),edges); // Convert cv::Mat to UIImage* and show the resulting image self.imageView.image = MatToUIImage(image);
}
OK啦,这样我们就可以对实时的视频做边缘检测了:
相关文章推荐
- OpenCV 获取摄像头,新建窗口显示摄像头视频
- opencv获取摄像头视频并显示
- opencv视频获取显示代码问题和调试
- 使用QT和Opencv获取文件夹中任意的视频文件并显示出来
- OpenCV 获取摄像头并显示摄像头视频
- OpenCV 获取摄像头并显示摄像头视频
- Android 获取播放视频的相关 内容,  分辨率, 方向,作者信息
- Zedboard摄像头获取视频设计问题篇(四)-OpenCV+QT配置显示图片
- OpenCV For iOS 1: 连接OpenCV 3.0
- OpenCV学习笔记(1):获取摄像头并显示摄像头视频
- OpenCV 获取摄像头并显示摄像头视频
- OpenCV 获取摄像头,新建窗口显示摄像头视频
- OpenCV 获取摄像头并显示摄像头视频
- OpenCV 获取摄像头并显示摄像头视频
- opencv1.0 vc6.0 视频获取显示程序调试经验
- OpenCV 获取笔记本摄像头,新建窗口显示摄像头视频
- OpenCV 获取摄像头并显示摄像头视频
- 海康网络摄像机视频数据的获取及使用opencv显示
- Qt Webkit可以做什么(二)——显示网页&获取网络服务
- OpenCV2.3调用摄像头程序,获取图片逐帧显示