mad*_*max 2 opencv objective-c uiimageview uiimage
我在opencv委托方法中调用setImage函数时遇到问题processImage.
当我打电话setImage时viewDidLoad,我可以看到图像,但是当我这样做时processImage,它不起作用.
这有什么问题?
- (void)viewDidLoad
{
[super viewDidLoad];
// This works !
[processImageView setImage:[UIImage imageNamed:@"resistor3.jpg"]];
}
- (void)processImage:(cv::Mat&)img {
// This does not work anymore !
[processImageView setImage:[UIImage imageNamed:@"resistor3.jpg"]];
}
Run Code Online (Sandbox Code Playgroud)
当您修改UI时,必须从主线程执行此操作,如果委托方法被调用,则可能会在另一个线程上调用该方法.试试这个.
- (void)processImage:(cv::Mat&)img {
dispatch_async(dispatch_get_main_queue(), ^{
[processImageView setImage:[UIImage imageNamed:@"resistor3.jpg"]];
// I also think you should use the dot syntax, but that's purely a style thing
// processImageView.image = [UIImage imageNamed:@"resistor3.jpg"];
});
}
Run Code Online (Sandbox Code Playgroud)
编辑:添加有关使用点语法的建议
| 归档时间: |
|
| 查看次数: |
3397 次 |
| 最近记录: |