본문 바로가기

프로그래밍/iOS

[ios] opencv Canny 사용

사진 혹은 영상의 외곽선 추출이 궁금하여 검색하니

 

opencv의 canny를 사용하라고 한다.

 

이에 opencv최신버전으로 테스트

 

.h파일

#import <UIKit/UIKit.h>

#import <opencv2/opencv.hpp> 

#import <opencv2/imgproc/imgproc_c.h> 

#import <opencv2/highgui/cap_ios.h> 

#import <opencv2/core/core_c.h> 

using namespace cv;

 

@interface ViewController : UIViewController <CvVideoCameraDelegate>

@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@property (strong, nonatomic) CvVideoCamera* camera;

 

@end

 

.m 파일

#import "ViewController.h"

 

@interface ViewController ()

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad

{

    [super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

    _camera = [[CvVideoCamera alloc]initWithParentView:_imageView];

    _camera.delegate = self;

    _camera.defaultAVCaptureDevicePosition = AVCaptureDevicePositionBack;

    _camera.defaultAVCaptureSessionPreset = AVCaptureSessionPresetPhoto;

    _camera.defaultAVCaptureVideoOrientation = AVCaptureVideoOrientationPortrait;

    _camera.rotateVideo = YES;

    _camera.defaultFPS = 60;

 

    [_camera start];

    

}

 

- (void) processImage:(cv::Mat &)image

{

    Mat image_copy;

    Mat image_copy2;

    

    cvtColor(image, image_copy, CV_BGRA2GRAY);

    

    Canny(image_copy, image_copy2, 200,200);

    cvtColor(image_copy2, image, CV_GRAY2BGRA);

 

 

 

}