-
Notifications
You must be signed in to change notification settings - Fork 17
/
ViewController.swift
78 lines (59 loc) · 2.61 KB
/
ViewController.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//
// ViewController.swift
// MatftDemo
//
// Created by AM19A0 on 2020/03/20.
// Copyright © 2020 jkado. All rights reserved.
//
import UIKit
import Matft
import Accelerate
import CoreGraphics
import CoreGraphics.CGBitmapContext
class ViewController: UIViewController {
@IBOutlet weak var originalImageView: UIImageView!
@IBOutlet weak var reverseImageView: UIImageView!
@IBOutlet weak var grayreverseImageView: UIImageView!
@IBOutlet weak var swapImageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
self.originalImageView.image = UIImage(named: "rena.jpeg")
self.reverseImageView.image = UIImage(named: "rena.jpeg")
self.grayreverseImageView.image = self.convertToGrayScale(image: UIImage(named: "rena.jpeg")!)
self.swapImageView.image = UIImage(named: "rena.jpeg")
self.reverse()
self.grayreverse()
self.swapchannel()
self.resize()
}
func reverse(){
var image = Matft.image.cgimage2mfarray(self.reverseImageView.image!.cgImage!)
// reverse
image = image[Matft.reverse] // same as image[~<<-1]
self.reverseImageView.image = UIImage(cgImage: Matft.image.mfarray2cgimage(image))
}
func swapchannel(){
var image = Matft.image.cgimage2mfarray(self.swapImageView.image!.cgImage!)
// swap channel
image = image[Matft.all, Matft.all, MfArray([1,0,2,3])] // same as image[0~<, 0~<, MfArray([1,0,2,3])]
self.swapImageView.image = UIImage(cgImage: Matft.image.mfarray2cgimage(image))
}
func grayreverse(){
var image = Matft.image.cgimage2mfarray(self.grayreverseImageView.image!.cgImage!, mftype: .UInt8)
// reverse
image = image[Matft.reverse] // same as image[~<<-1]
self.grayreverseImageView.image = UIImage(cgImage: Matft.image.mfarray2cgimage(image))
}
func convertToGrayScale(image: UIImage) -> UIImage{
//let gray_mfarray = (Matft.image.color(Matft.image.cgimage2mfarray(image.cgImage!)) * Float(255)).astype(.UInt8)
let gray_mfarray = Matft.image.color(Matft.image.cgimage2mfarray(image.cgImage!))
return UIImage(cgImage: Matft.image.mfarray2cgimage(gray_mfarray))
}
func resize(){
var image = Matft.image.cgimage2mfarray(self.swapImageView.image!.cgImage!)
// resize
image = Matft.image.resize(image, width: 300, height: 300)
self.swapImageView.image = UIImage(cgImage: Matft.image.mfarray2cgimage(image))
//self.swapImageView.frame = CGRect(x: 0, y: 0, width: 300, height: 300)
}
}