Opencv For IOS相机环境搭建
Step 1:next" title="" style="border:none;" data-original="https://img-blog.csdn.net/20160627165528648"> Step 2:导入有用的framework opencv2.framework需要自己下载 opencv2.framework如下导入方式 其他 .framework如下方式导入 导入framework后如下图所示 Step 3: 下图1的位置将.m文件改为.mm文件 Step 4: 添加protocol 这个delegate可以用来出来获取的视频图像 Step 5:创建一个CvVideoCamera的实例 @property (nonatomic,strong) CvVideoCamera *videoCamera; Step 6:将videoCamera对象与imageView连接: self.videoCamera = [[CvVideoCamera alloc] initWithParentView:self.imageView]; self.videoCamera.delegate = self; self.videoCamera.defaultAVCaptureDevicePosition = AVCaptureDevicePositionBack;//调用摄像头前置或者后置 self.videoCamera.defaultAVCaptureSessionPreset = AVCaptureSessionPreset640x480;//设置图像分辨率 self.videoCamera.rotateVideo=YES;// 解决图像显示旋转90°问题 self.videoCamera.grayscaleMode = NO;//获取图像是灰度还是彩色图像 self.videoCamera.defaultFPS = 30;//摄像头频率 只要简单的设置,现在videoCamera已经就绪了,只需要以下命令: [self.videoCamera start]; [self.videoCamera stop]; 进行控制 Step 7:对获取的实时图像进行处理 利用protocol的method: -(void)processImage:(cv::Mat &)image { //添加自己的图像处理算法 if (!image.empty()) { if(image.channels()==4) { cv::Mat gray; cv::cvtColor(image, gray, CV_BGRA2GRAY); cv::GaussianBlur(gray, gray, cv::Size(5,5), 1.2, 1.2); cv::Mat edges; cv::Canny(gray, edges, 0, 60); image.setTo(cv::Scalar::all(255)); image.setTo(cv::Scalar(0,128,255,255), edges); self.imageView.image = MatToUIImage(image); }else if(image.channels()==3) { cv::Mat gray; cv::cvtColor(image, gray, CV_RGB2GRAY); cv::GaussianBlur(gray, gray, cv::Size(5,5), 1.2, 1.2); cv::Mat edges; cv::Canny(gray, edges, 0, 60); image.setTo(cv::Scalar::all(255)); image.setTo(cv::Scalar(0,128,255,255), edges); self.imageView.image = MatToUIImage(image); } else if(image.channels()==1){ cv::Mat gray; cv::GaussianBlur(image, gray, cv::Size(5,5), 1.2, 1.2); cv::Mat edges; cv::Canny(gray, edges, 0, 60); image.setTo(cv::Scalar::all(255)); image.setTo(cv::Scalar(0,128,255,255), edges); self.imageView.image = MatToUIImage(image); } else{ } } } 有时会出现如下错误 ld: ‘/Users///*/opencv2.framework/opencv2(cap_ios_video_camera.o)’ does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64 Build Phases 收索bit code 将Enable Bitcode 后面的Yes改为No。 Opencv+IOS源码 Opencv For IOS 配置视频