アプリケーション内に保存したすべての画像をプリロードするつもりです。画像のプリロードには以下が含まれます。
- バンドルから画像を読み取ります。
- opencvフレームワークからcvExtractSurfを使用してオブジェクト記述子を抽出します。
- IPLImageを対応するオブジェクト記述子とキーポイントとともに保存します。
CvSeq*キーとCvSeq*デスクを含む辞書の作成に問題があります。これらの値をNSMutableDictionaryに保存する方法を提案してください。
-(void) preloadImages:(NSMutableDictionary *)dictionary{
NSArray *d = [[NSBundle mainBundle] pathsForResourcesOfType:@"png" inDirectory:nil];
CvSURFParams params = cvSURFParams(500, 1);
CvMemStorage* storage = cvCreateMemStorage(0);
for( int i=0;i<[d count];i++){
NSString *searchForMe = @"myapp.app/1";
NSString *s = [[NSString alloc] initWithString:[d objectAtIndex:i]];
NSRange range = [s rangeOfString:searchForMe];
if( range.location != NSNotFound ){
NSMutableDictionary *surfDict = [[NSMutableDictionary alloc] init];
NSString *substring = [s substringFromIndex:range.location];
substring = [substring stringByReplacingOccurrencesOfString:@"myapp.app/" withString:@""];
UIImage *testImage = [UIImage imageNamed:substring];
IplImage *iplTestImage = [OpenCVUtilities CreateGRAYIplImageFromUIImage:testImage];
CvSeq *keys = 0 ;
CvSeq *descs = 0;
cvExtractSURF( iplTestImage, 0, &keys, &descs, storage, params );
[surfDict setObject:(id)testImage forKey:@"uiImage"];
NSLog(@"Image name : %@", substring);
[dictionary setObject:surfDict forKey:[NSString stringWithFormat:@"%d",i]];
[dictionary setObject:(NSObject *)keys forKey:@"keys"]; // error here
[dictionary setObject:(NSObject *)descs forKey:@"descs"]; // error here
[surfDict release];
}
}
}