質問編集履歴
3
編集
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
コード修正、結果添付
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) <
|
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(
|
44
|
+
f = np.fft.fft2(cl1)
|
39
|
-
fshift = np.fft.fftshift(f)
|
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
コード補足記入
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
|