Ошибка сшивания изображения при использовании OpenCV в iPhone

Я работаю над сшивкой изображения с помощью OpenCV. Я использую четыре изображения размером «720 × 960 пикселей». Из четырех изображений я использовал три изображения, которые будут сшиты при запуске приложения. и четвертый будет прошивать, когда я нажимаю на кнопку стежка. Работает нормально. Но проблема возникает, когда я меняю размер с «720 × 960 пикселей до 640 × 960 пикселей» из всех четырех изображений и снова я запускаю код после изменения размера изображений, три изображения были показаны так же, как я упоминал выше, но пока я нажимаю на кнопку стежка, откуда я должен сшить четвертое изображение, компилятор показывает сообщение в консоль, как упомянуто ниже

Не могу сшить изображения, код ошибки = 1

<Ошибка>: CGImageCreate: неверный размер изображения: 0 x 0.

Я использовал следующий код

В CVViewController.h

import <UIKit/UIKit.h>

@interface CVViewController : UIViewController
{
NSArray *arrayImgGlobal;

}
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView* spinner;
@property (nonatomic, weak) IBOutlet UIScrollView* scrollView;
@end

В CVViewController.m

#import "CVViewController.h"#import "CVWrapper.h"
@interface CVViewController ()

@end

@implementation CVViewController

- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
NSArray* imageArray = [NSArray arrayWithObjects:
[UIImage imageNamed:@"[email protected]"],
[UIImage imageNamed:@"[email protected]"],
[UIImage imageNamed:@"[email protected]"],
nil];
[self stitch:imageArray];
}

-(IBAction)onButtonStitch:(UIButton *)btn
{
[self onBtnStitchPressed:arrayImgGlobal];
}
-(void)onBtnStitchPressed:(NSArray *)imageArray
{
[self stitch:imageArray];
}

- (void) stitch : (NSArray *)imageArray
{
[self.spinner startAnimating];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
UIImage* stitchedImage = [CVWrapper processWithArray:imageArray];
dispatch_async(dispatch_get_main_queue(), ^{

NSLog (@"stitchedImage %@",stitchedImage);
for (UIImageView *imgView in [self.scrollView subviews]) {
[imgView removeFromSuperview];
}
UIImageView* imageView = [[UIImageView alloc] initWithImage:stitchedImage];

self.imageView = imageView;
[self.scrollView addSubview:self.imageView];
self.scrollView.backgroundColor = [UIColor blackColor];
self.scrollView.contentSize = self.imageView.bounds.size;
self.scrollView.maximumZoomScale = 4.0;
self.scrollView.minimumZoomScale = 0.5;
self.scrollView.contentOffset = CGPointMake(-(self.scrollView.bounds.size.width-self.imageView.bounds.size.width)/2, -(self.scrollView.bounds.size.height-self.imageView.bounds.size.height)/2);
NSLog (@"scrollview contentSize %@",NSStringFromCGSize(self.scrollView.contentSize));
[self.spinner stopAnimating];

NSArray *arrayImages = [NSArray arrayWithObjects:
stitchedImage,
[UIImage imageNamed:@"[email protected]"],
nil];
arrayImgGlobal = arrayImages;

});
});
}
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return YES;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

#pragma mark - scroll view delegate

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return self.imageView;
}
@end

Код, который я использовал в моем проекте Вот

Еще кое-что-
Я протестировал свой код вместе с кодом выше ссылки в симуляторе ios 7.0. пока я запускаю его в устройство, оно только что показало сообщение в консоли, о котором я упоминал выше.

Может кто-нибудь сказать, пожалуйста, где я могу пойти не так и как это исправить? Спасибо

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]