Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d5f0ad9

Browse files
fucking onnozelle shit
1 parent 4a73dcb commit d5f0ad9

File tree

8 files changed

+145
-231
lines changed

8 files changed

+145
-231
lines changed

‎.ipynb_checkpoints/FitFunction-checkpoint.ipynb

Lines changed: 43 additions & 90 deletions
Large diffs are not rendered by default.

‎.ipynb_checkpoints/Image_preperation-checkpoint.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"\n",
3232
"def calc_external_img_active_contour(img): \n",
3333
"\n",
34-
" median = median(img)\n",
34+
" median = median_filter(img)\n",
3535
" contrast = contrast_stretching(median)\n",
3636
" ext_img = canny(contrast)\n",
3737
"\n",

‎ActiveFitContour.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
" p = p.astype(int)\n",
6363
" max_value = np.abs(np.min(external_img))\n",
6464
" \n",
65-
" return external_img[p[0],p[1]] / max_value\n",
65+
" return external_img[p[1],p[0]] / max_value\n",
6666
" \n",
6767
"def calc_energy(p1, p2, external_img, mean_points,alpha):\n",
6868
" \n",

‎ActiveFitContour.py

Lines changed: 44 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
# coding: utf-8
33

4-
# In[1]:
4+
# In[12]:
55

66

77
import numpy as np
@@ -53,14 +53,14 @@ def calc_external_img(img):
5353

5454
G = np.sqrt(Gx**2 + Gy**2)
5555

56-
return -G
56+
return G
5757

5858
def calc_external(p, external_img):
5959

6060
p = p.astype(int)
6161
max_value = np.abs(np.min(external_img))
6262

63-
return external_img[p[0],p[1]] / max_value
63+
return external_img[p[1],p[0]] / max_value
6464

6565
def calc_energy(p1, p2, external_img, mean_points,alpha):
6666

@@ -97,13 +97,14 @@ def unpack(number, back_pointers, angles, points, pixel_width):
9797

9898
#https://courses.engr.illinois.edu/cs447/fa2017/Slides/Lecture07.pdf
9999
#viterbi algo
100-
def active_contour(points, img, pixel_width, alpha):
100+
def active_contour(points, edge_img, pixel_width, alpha):
101101
size = len(points)
102102
num_states = (2*pixel_width +1)
103103

104-
trellis = np.empty((size, num_states), dtype=np.float16)
105-
back_pointers = np.empty((size, num_states), dtype=int)
106-
external_img = calc_external_img(img)
104+
trellis = np.zeros((size, num_states), dtype=np.float16)
105+
back_pointers = np.zeros((size, num_states), dtype=int)
106+
#external_img = calc_external_img(img)
107+
external_img = -edge_img
107108
mean_points = calc_mean(points)
108109

109110
#init
@@ -187,28 +188,38 @@ def get_angles_of(points):
187188

188189

189190

190-
# In[2]:
191+
# In[37]:
191192

192193

193194
if __name__ == "__main__":
194195

195196
piece = fm.load_img_piece()
196-
tooth = fm.load_tooth_of_piece(4)
197-
ext = calc_external_img2(piece)
197+
tooth = fm.load_tooth_of_piece(5)
198+
ext = calc_external_img(piece)
198199
fm.show_with_points(ext, tooth)
200+
img, stooth = fm.resolution_scale(piece, tooth, 1/6)
201+
ext = calc_external_img(img)
202+
fm.show_with_points(ext, stooth)
203+
204+
205+
# In[36]:
206+
199207

208+
new_tooth = active_contour(stooth, -ext2, 10, 5)
209+
fm.show_with_points(ext2, new_tooth)
200210

201-
# In[4]:
211+
212+
# In[4]:
202213

203214

204215
ext = calc_external_img(piece)
205216
fm.show(ext)
206217

207218

208-
# In[47]:
219+
# In[]:
209220

210221

211-
new_tooth = active_contour(tooth, piece, 1, 40, 10)
222+
new_tooth = active_contour(tooth, piece, 20, 10)
212223
fm.show_with_points(ext, new_tooth)
213224

214225

@@ -217,7 +228,7 @@ def get_angles_of(points):
217228

218229
new_img, new_points = resolution_scale(piece, tooth, 1/8)
219230
fm.show_with_points(new_img, new_points)
220-
new_tooth = active_contour(new_points, new_img, 2, 10, 10)
231+
new_tooth = active_contour_loop(new_points, new_img, 1, 10, 10)
221232
fm.show_with_points(new_img, new_points)
222233

223234

@@ -256,3 +267,22 @@ def get_angles_of(points):
256267
print(calc_internal(new_tooth[0], new_tooth[1], mean))
257268
print(calc_energy(new_tooth[0],new_tooth[1],ext,mean,10))
258269

270+
271+
# In[8]:
272+
273+
274+
piece = fm.load_img_piece()
275+
tooth = fm.load_tooth_of_piece(0)
276+
ext = calc_external_img2(piece)
277+
fm.show_with_points(ext, tooth)
278+
ext2, stooth = fm.resolution_scale(ext, tooth, 1/6)
279+
ext = calc_external_img2(img)
280+
fm.show_with_points(ext2, stooth)
281+
282+
283+
# In[11]:
284+
285+
286+
new_tooth = active_contour(stooth, ext2, 6, 1)
287+
fm.show_with_points(ext2, new_tooth)
288+

‎FitFunction.ipynb

Lines changed: 43 additions & 90 deletions
Large diffs are not rendered by default.

‎FitFunction.py

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
# coding: utf-8
33

4-
# In[]:
4+
# In[22]:
55

66

77
import Image_preperation as prep
@@ -172,7 +172,7 @@ def edge_strength_at_points(points ,edge_img):
172172

173173
gradient = np.empty(len(points))
174174
for i, p in enumerate(points):
175-
gradient[i] = edge_img[int(p[0]),int(p[1])]
175+
gradient[i] = edge_img[int(p[1]),int(p[0])]
176176

177177
return gradient
178178

@@ -246,7 +246,7 @@ def test_normal_on_edge():
246246

247247

248248

249-
# In[]:
249+
# In[23]:
250250

251251

252252
if __name__ == "__main__":
@@ -257,7 +257,7 @@ def test_normal_on_edge():
257257
tooth = fm.load_tooth_of_piece()
258258
points = tooth
259259

260-
fm.show_with_points(piece, points)
260+
#fm.show_with_points(piece, points)
261261

262262
new_points = np.copy(points)
263263
new_points[:,0]=points[:,0]-100
@@ -268,7 +268,9 @@ def test_normal_on_edge():
268268
rad = get_normal_angle(a,b,c)
269269
p1 = get_point_at_distance(b, 20, rad)
270270
p2 = get_point_at_distance(b, -20, rad)
271+
271272
img_copy = new_pice.copy()
273+
272274
p1 = np.array(p1,dtype=int)
273275
p2 = np.array(p2,dtype=int)
274276
make_line(img_copy, p1,p2)
@@ -280,7 +282,8 @@ def test_normal_on_edge():
280282
show_with_points(img_copy,visualize_points)
281283

282284
edges = get_points_on_angle_normal(b, rad, 20)
283-
edge_img = prep.sobel(new_pice)
285+
#edge_img = prep.sobel(new_pice)
286+
edge_img = prep.canny(new_pice)
284287
strength = edge_strength_at_points(edges ,edge_img)
285288

286289
#show_with_points(new_pice,np.append(edges,visualize_points).reshape(-1,2))
@@ -289,6 +292,9 @@ def test_normal_on_edge():
289292
plt.plot(np.arange(-20,21),strength)
290293
plt.show()
291294

295+
p = strongest_edge_point_on_normal(a,b,c,20, edge_img)
296+
show_with_points(edge_img,np.append(visualize_points,p).reshape(-1,2))
297+
292298
# piece = prep.median_filter(piece)
293299
# edge_img = prep.edge_detection_high(piece)
294300
# show_with_points(edge_img, points)
@@ -307,31 +313,3 @@ def test_normal_on_edge():
307313
# new_points, error = fit_measure(tooth, 30, edge_img)
308314
# fm.show_with_points(piece, new_points)
309315

310-
311-
# In[11]:
312-
313-
314-
math.degrees(rad)
315-
316-
317-
# In[14]:
318-
319-
320-
math.degrees(calc_angle(c,b,a))
321-
322-
323-
# In[4]:
324-
325-
326-
edge_img = prep.calc_external_img_active_contour(new_pice)
327-
p = strongest_edge_point_on_normal(a,b,c,20, edge_img)
328-
show_with_points(edge_img,np.append(visualize_points,p).reshape(-1,2))
329-
330-
331-
# In[8]:
332-
333-
334-
edge_img = prep.canny(new_pice)
335-
p = strongest_edge_point_on_normal(a,b,c,20, edge_img)
336-
show_with_points(edge_img,np.append(visualize_points,p).reshape(-1,2))
337-

‎Image_preperation.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"\n",
3232
"def calc_external_img_active_contour(img): \n",
3333
"\n",
34-
" median = median(img)\n",
34+
" median = median_filter(img)\n",
3535
" contrast = contrast_stretching(median)\n",
3636
" ext_img = canny(contrast)\n",
3737
"\n",

‎Image_preperation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
def calc_external_img_active_contour(img):
3333

34-
median = median(img)
34+
median = median_filter(img)
3535
contrast = contrast_stretching(median)
3636
ext_img = canny(contrast)
3737

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /