2013-02-25 1 views
1

나는 매일 물어볼 수있는 종류라는 것을 알고 있지만 실제로는 모든 질문에 대해 대답이 다를 수 있다는 것을 알고 있습니다. 아직 찾지 못했습니다.ViewController에서 선언되지 않은 식별자를 사용합니다.

현재 Objective C의 초보자이며 프레임 워크 OpenCV을 사용하여 앱을 개발 중입니다.

나는이 website을 학습하기 위해 을 학습 한 다음 문제가 발생했습니다.

나는 이력서 :: 매트에있는 UIImage하고있는 UIImage에 이력서 :: 매트를 변환하는 웹 사이트에서 제공하는 3 가지 방법을 붙여/복사,하지만 난 그들을 사용할 수 없습니다

내 * .PCH 파일을 :

#import <Availability.h> 

#ifndef __IPHONE_5_0 
#warning "This project uses features only available in iOS SDK 5.0 and later." 
#endif 

#ifdef __cplusplus 
#import <opencv2/opencv.hpp> 
#endif 

#ifdef __OBJC__ 
#import <UIKit/UIKit.h> 
#import <Foundation/Foundation.h> 
#endif 

내 ViewController.hh는

#import <UIKit/UIKit.h> 
@interface ViewController : UIViewController 

- (cv::Mat)cvMatFromUIImage:(UIImage *)image; 
- (cv::Mat)cvMatGrayFromUIImage:(UIImage *)image; 
- (UIImage *)UIImageFromCVMat:(cv::Mat)cvMat; 
@end 

내 ViewController.mm 파일을 파일

#import "ViewController.hh" 

@interface ViewController() 

@end 


@implementation ViewController 

- (cv::Mat)cvMatFromUIImage:(UIImage *)image 
{ 
    @@@//what is given in the linked website 
    return cvMat; 
} 

- (cv::Mat)cvMatGrayFromUIImage:(UIImage *)image 
{ 
    @@@//what is given in the linked website 
    return cvMat; 
} 

-(UIImage *)UIImageFromCVMat:(cv::Mat)cvMat 
{ 
    @@@//what is given in the linked website  
    return finalImage; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    NSString* filename = [[NSBundle mainBundle] pathForResource:@"openCV" ofType:@"jpg"]; 
    UIImage *image = [UIImage imageWithContentsOfFile:filename]; 

    cv::Mat inputMat = cvMatFromUIImage(image); 
    UIImage *newImage = UIImageFromCVMat(inputMat); 

    self.view.backgroundColor = [UIColor colorWithPatternImage:newImage]; 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"HelloWorld !" message:@"Welcome to OpenCV !" delegate:self cancelButtonTitle:@"Continue" otherButtonTitles:nil, nil]; 
    [alert show]; 
} 

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 
} 

@end 

두 오류는 .mm 파일의 (void) viewDidLoad에만 있습니다. cvMatFromUIImageUIImageFromCVMat은 모두 선언되지 않았습니다.

어리석은 질문 일 수도 있습니다. 뭔가 빠뜨린 것 같지만 무엇을 모릅니다.

제발 도와주세요 :)

답변

2

을 당신이 목표 - C에서 함수를 정의했지만 그들을 호출하는 C 표준을 사용하여 생각 ... 이러한 변경 :

cvMatFromUIImage(image) 
UIImageFromCVMat(inputMat) 

[self cvMatFromUIImage:image]; 
[self UIImageFromCVMat:inputMat]; 
+0

감사합니다. 지금 otehr issu를 얻었습니다.하지만 단계별로 설명해 드리겠습니다. 괜찮습니다 ^^ – Tiffado