forked from henrikmidtiby/MarkerLocator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
dev.py
60 lines (39 loc) · 1.65 KB
/
dev.py
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
from MarkerTracker import MarkerTracker
import numpy as np
import cv2
import cv
from time import sleep
kernelSize = 31
order=5
markerTracker = MarkerTracker(5, kernelSize, 1)
(kernel_order_n_Real, kernel_order_n_Imag) = markerTracker.generateSymmetryDetectorKernel(order, kernelSize)
(kernel_order_1_Real, kernel_order_1_Imag) = markerTracker.generateSymmetryDetectorKernel(1, kernelSize)
kernel_order_1_array = np.array(kernel_order_1_Real + 1j*kernel_order_1_Imag, dtype=complex)
kernel_order_n_array = np.array(kernel_order_n_Real + 1j*kernel_order_n_Imag, dtype=complex)
absolute = np.absolute(kernel_order_n_array)
threshold = 0.4*absolute.max()
phase = np.exp(0.1*3.14*1j)
t1_temp = kernel_order_n_array*np.power(phase, order)
t1 = t1_temp.real > threshold
t2_temp = kernel_order_n_array*np.power(phase, order)
t2 = t2_temp.real < -threshold
img_t1_t2_diff = t1.astype(np.float32)-t2.astype(np.float32)
angleThreshold = 3.14/(2*order)
print angleThreshold
# t3 = angle(tempDirection * phase) < angleThreshold;
# t4 = angle(tempDirection * phase) > -angleThreshold;
# mask = 1 - 2 * (t3 & t4);
# imagesc(mask);
t3 = np.angle(kernel_order_1_array * phase) < angleThreshold
t4 = np.angle(kernel_order_1_array * phase) > -angleThreshold
mask = 1-2*(t3 & t4)
image_without_arm = (img_t1_t2_diff) * mask
image = (img_t1_t2_diff+1)*127
t1_t2_diff = cv.fromarray(image)
cv.SaveImage("Kernel_%d.jpg" % 1, t1_t2_diff)
image_without_arm = (image_without_arm+1)*127
mask_img = cv.fromarray(image_without_arm)
cv.SaveImage("Kernel_%d.jpg" % 2, mask_img)
img_mask = (mask.astype(np.float32)+1)*127
img_mask = cv.fromarray(img_mask)
cv.SaveImage("Kernel_%d.jpg" % 3, img_mask)