其應用領域有: 1、人機互動 2、物體識別 3、圖像分割 4、人臉識別 5、動作識別 6、運動跟蹤 7、機器人 8、運動分析 9、機器視覺 10、結構分析 11、汽車安全駕駛
2,使用OpenCV進行圖片拼接由於我們需要使用OpenCV,但Swift又不能直接調用C++。所以便需要使用Objective-C來做為中間層,讓Swift通過Objective-C來調用OpenCV。
好在github上已經有人提供了相關的封裝類,我們直接把如下文件導入到項目即可。
#import "CVWrapper.h"
(4)下面使用就很簡單了,把UIImage交給CVWrapper就可以了
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var spinner: UIActivityIndicatorView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
stitch()
}
func stitch() {
//由於圖片拼接很費時,顯示環形進度條
self.spinner.startAnimating()
//在後台隊列拼接圖片
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
let image1 = UIImage(named:"IMG_4247.jpg")
let image2 = UIImage(named:"IMG_4248.jpg")
let image3 = UIImage(named:"IMG_4249.jpg")
let image4 = UIImage(named:"IMG_4250.jpg")
let imageArray:[UIImage!] = [image1,image2,image3,image4]
let stitchedImage:UIImage = CVWrapper.processWithArray(imageArray) as UIImage
self.imageView.image = stitchedImage
//停止環形進度條效果
self.spinner.stopAnimating()
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}