質問編集履歴

3

編集

2024/11/09 04:02

投稿

kkjiji
kkjiji

スコア40

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,6 @@
16
16
 
17
17
 
18
18
  ### 該当のソースコード
19
- 以下、即席で作ったコードなので動かないかも。
20
19
  ```python
21
20
  import numpy as np
22
21
  import cv2

2

コード修正、結果添付

2024/11/09 04:01

投稿

kkjiji
kkjiji

スコア40

test CHANGED
File without changes
test CHANGED
@@ -8,6 +8,10 @@
8
8
 
9
9
  ### 発生している問題・分からないこと
10
10
  シワを検出する良いアルゴリズムが思いつかない。
11
+
12
+ 以下のコードで作ったもの
13
+ 大きいシワを対象に取ってみた。
14
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2024-11-09/ae090878-55d5-4154-9806-153bc6bdda31.png)
11
15
 
12
16
 
13
17
 
@@ -27,18 +31,28 @@
27
31
  width = img.shape[1]
28
32
  center_w = height//2
29
33
  center_h = width//2
34
+ R = 2
30
35
 
31
36
  mask = np.ones([height, width])
37
+
32
38
  for i in range(0, height):
33
39
  for j in range(0, width):
34
- if (i-center_w)*(i-center_w) + (j-center_h)*(j-center_h) < 5*5:
40
+ if (i-center_w)*(i-center_w) + (j-center_h)*(j-center_h) < R*R:
35
41
  mask[i][j] = 0
36
42
 
37
43
  # フーリエ変換
38
- f = np.fft.fft2(img)
44
+ f = np.fft.fft2(cl1)
39
- fshift = np.fft.fftshift(f) * mask
45
+ fshift = np.fft.fftshift(f)*mask
46
+ magnitude_spectrum = 20*np.log(np.abs(fshift))
47
+
40
48
  f_ishift = np.fft.ifftshift(fshift)
41
49
  img_back = np.fft.ifft2(f_ishift)
50
+
51
+ img_real = np.real(img_back)
52
+ img_real = 255 * (img_real - img_real.min()) / (img_real.max() - img_real.min())
53
+ img_uint8 = img_real.astype(np.uint8)
54
+
55
+ _, thresh_img = cv2.threshold(img_uint8, 110, 255, cv2.THRESH_BINARY)
42
56
 
43
57
  # 以下、ノイズ除去として一定の面積以下を削除など入れようと考えている。
44
58
  ```

1

コード補足記入

2024/11/08 14:20

投稿

kkjiji
kkjiji

スコア40

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
  ### 該当のソースコード
15
-
15
+ 以下、即席で作ったコードなので動かないかも。
16
16
  ```python
17
17
  import numpy as np
18
18
  import cv2