3.The method about how to use OpenCV in Xcode
- opencv2.framwork 압축파일을 opencv.org 에서 다운받는다
- 프로젝트를 swift로 만든다
- 압축해제한 폴더를 프로젝트에 복사한다
- Cocoa Touch Class 에서 NSObject로 OpenCVWrapper를 만든다
- .m 파일을 엔터를 눌러 .mm으로 변환해주면 c++ 형식을 읽는다
- PrefixHeader.pch파일을 만들고 아래의 코드를 추가한다
#ifdef __cplusplus
#include <opencv2/opencv.hpp>
#endif
‘opencv2/opencv.hpp’ file not found 에러를 만나고
여기서부터 경로설정을해준다
- Target » Build Settings 에서 Apple Clang - Language » Prefix Header 에 $(SRCROOT)/PrefixHeader.pch 를 추가한다
- arget » Build Settings 에서 Search Paths » Framework Search Paths 에 압축해제한 폴더의 * 상위폴더* 까지 경로를 입력해준다 ( 제대로 입력해도 에러가 발생하는 버그를 발견, 추가경로를 입력하고 컴파일 했다가 다시 제대로 경로를 입력하니 해결됨 )
이미지를 회색으로 변환해주는 코드들
OpenCVWrapper.h
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface OpenCVWrapper : NSObject
+(UIImage *) makeGrayImage:(UIImage *) image;
@end
NS_ASSUME_NONNULL_END
OpenCVWrapper.mm
#import "OpenCVWrapper.h"
#import <opencv2/opencv.hpp>
#import <opencv2/imgcodecs/ios.h>
@implementation OpenCVWrapper
+(UIImage *) makeGrayImage:(UIImage *)image{
cv::Mat imageMat;
UIImageToMat(image, imageMat);
if(imageMat.channels() == 1)
return image;
cv::Mat grayMat;
cv::cvtColor(imageMat, grayMat, cv::COLOR_RGB2GRAY);
return MatToUIImage(grayMat);
}
@end
프로젝트명-Bridging-Header.h
#include "OpenCVWrapper.h"
Leave a comment