-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathguodu.py
82 lines (71 loc) · 2.35 KB
/
guodu.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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import change
import numpy as np
import MyMarchingSquares
import matplotlib.pyplot as plt
import cv2
import modify
import time
inpath = "D:\\in\\"
outpath = "D:\\out\\"
src = "41004"
raw = cv2.imread(inpath + src + ".jpg")
raw = cv2.bilateralFilter(raw, 7, 50, 50)
# raw_Filter = cv2.bilateralFilter(raw, 7, 50, 50)
# cv2.imwrite(outpath + src + "__srcBil" + ".jpg", raw_Filter)
# raw = raw_Filter
# raw2 = cv2.cvtColor(raw_Filter, cv2.COLOR_BGR2GRAY)
raw2 = cv2.cvtColor(raw, cv2.COLOR_BGR2GRAY)
raw2 = cv2.bilateralFilter(raw2, 7, 50, 50)
print(0)
# np.savetxt("D:\\noise\\gray.csv", raw2, fmt="%d", delimiter=',')
# cv2.imwrite("D:\\noise\\Canny.jpg", cv2.Canny(raw2, 100, 200))
# np.savetxt("D:\\noise\\Canny.csv", cv2.Canny(raw2, 100, 200), fmt="%d", delimiter=',')
# raw2_Filter = cv2.bilateralFilter(raw2, 7, 50, 50)
# cv2.imwrite(outpath + src + "_grayBil" + ".jpg", raw2_Filter)
# np.savetxt(outpath + src + '__grayBil' + '.csv', raw2_Filter, fmt="%d", delimiter=',')
# raw2 = raw2_Filter
start1 = time.clock()
noise_num = 1
a, b, c, d, e = modify.noise_array(raw2, noise_num)
end1 = time.clock()
# np.savetxt("D:\\noise\\noise.csv", a, fmt="%d", delimiter=',')
# raw3 = change.fix_noise(raw2, a, 1)
# cv2.imwrite("D:\\noise\\Canny_fix_noise.jpg", cv2.Canny(raw3, 100, 200))
# np.savetxt("D:\\noise\\re.csv", raw3, fmt="%d", delimiter=',')
#
# rows = raw2.shape
start2 = time.clock()
re = np.zeros((c.shape[0],c.shape[1],3))
print(1)
# 矛盾点
for i in range(c.shape[0]):
for j in range(c.shape[1]):
if c[i, j] == 1:
re[i, j][0] = 255
# 内部点
print(2)
for i in range(c.shape[0]):
for j in range(c.shape[1]):
if c[i,j]!=1 and d[i,j]!=1 and e[i,j]!=1:
re[i,j][1]=255
print(3)
# 边缘点
for i in range(d.shape[0]):
for j in range(d.shape[1]):
if d[i, j] == 1:
re[i, j][2] = 255
if e[i, j] == 1:
re[i, j][2] = 255
# for i in range(e.shape[0]):
# for j in range(e.shape[1]):
# if e[i, j] == 1:
# re[i, j][2] = 255
print(4)
cv2.imwrite("D:\\guodu.jpg", re)
end2 = time.clock()
# re = change.gradient_average(raw2, rows[0], rows[1], 1)
# re[0, :] = re[rows[0] - 1, :] = re[:, 0] = re[:, rows[1] - 1] = 0
# re1 = MyMarchingSquares.find_cross(MyMarchingSquares.labels_matrix_new(re, 30, 20))
# cv2.imwrite("D:\\cross.jpg", re1)
print(str(end1-start1))
print(str(end2-start2))