質問編集履歴

11

関数名の変更

2017/06/12 22:38

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -88,7 +88,7 @@
88
88
 
89
89
  # --------------------------------------
90
90
 
91
- def FFT_IFFT_FFT_core(img_ch):
91
+ def DFT_IDFT_core(img_ch):
92
92
 
93
93
  # ------------------------
94
94
 
@@ -244,11 +244,11 @@
244
244
 
245
245
  # Combine BGR
246
246
 
247
- img_b_fft = FFT_IFFT_FFT_core(img_b)
247
+ img_b_fft = DFT_IDFT_core(img_b)
248
-
248
+
249
- img_g_fft = FFT_IFFT_FFT_core(img_g)
249
+ img_g_fft = DFT_IDFT_core(img_g)
250
-
250
+
251
- img_r_fft = FFT_IFFT_FFT_core(img_r)
251
+ img_r_fft = DFT_IDFT_core(img_r)
252
252
 
253
253
  # cv2.imshow("img_b_fft",img_b_fft)
254
254
 

10

自己解決に向けた修正

2017/06/12 22:38

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
 
44
44
 
45
- (6/13 A.M 追記: stackoverflowの事例を参考にe^6~7を外すところまで来ました)
45
+ (6/13 A.M 追記1: stackoverflowの事例を参考にe^6~7を外すところまで来ました)
46
46
 
47
47
  **・255を振り切っている部分を0~255までに収めることができました**
48
48
 
@@ -50,6 +50,14 @@
50
50
 
51
51
 
52
52
 
53
+ (6/13 A.M 追記2)
54
+
55
+ **・intが64ではだめですよね**
56
+
57
+
58
+
59
+
60
+
53
61
  ###該当のソースコード
54
62
 
55
63
  ```Python

9

編集上の修正

2017/06/12 22:35

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
  # -*- coding: utf-8 -*-
58
58
 
59
- print ("* Now initializing... import")](https://stackoverflow.com/questions/30127283/how-to-get-accurate-idft-result-from-opencv)
59
+ print ("* Now initializing... import")
60
60
 
61
61
  import sys
62
62
 

8

自己解決に向けたコード修正

2017/06/12 22:17

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -42,7 +42,11 @@
42
42
 
43
43
 
44
44
 
45
-
45
+ (6/13 A.M 追記: stackoverflowの事例を参考にe^6~7を外すところまで来ました)
46
+
47
+ **・255を振り切っている部分を0~255までに収めることができました**
48
+
49
+ **・ただし、string,plt上では元の値に戻せていますが、openCV上では真っ暗になります**
46
50
 
47
51
 
48
52
 
@@ -108,9 +112,9 @@
108
112
 
109
113
 
110
114
 
111
- # Calc DFT
115
+ # Calc DFT(IMPORTANT: CALL "cv2.DFT_SCALE" TO REMOVE "*e^x")
112
-
116
+
113
- dft = cv2.dft(np.float32(img_merged),flags=cv2.DFT_COMPLEX_OUTPUT)
117
+ dft = cv2.dft(np.float32(img_merged),flags=cv2.DFT_COMPLEX_OUTPUT|cv2.DFT_SCALE )
114
118
 
115
119
 
116
120
 
@@ -140,6 +144,8 @@
140
144
 
141
145
 
142
146
 
147
+ # Calc magnitude
148
+
143
149
  img_back = cv2.magnitude(img_back[:,:,0],img_back[:,:,1])
144
150
 
145
151
 
@@ -150,6 +156,20 @@
150
156
 
151
157
 
152
158
 
159
+ # Float to ingeter
160
+
161
+ img_back = np.round(img_back).astype(np.int64)
162
+
163
+
164
+
165
+ # Debug with string
166
+
167
+ print("INPUT: %s\n"%(img_ch))
168
+
169
+ print("OUTPUT: %s\n\n"%(img_back))
170
+
171
+
172
+
153
173
  # Debug
154
174
 
155
175
  plt.subplot(121),plt.imshow(img_ch, cmap = 'gray')
@@ -164,52 +184,20 @@
164
184
 
165
185
 
166
186
 
187
+ # Debug with openCV
188
+
189
+ cv2.imshow("img_ch",img_ch)
190
+
191
+ cv2.imshow("img_back",img_back)
192
+
193
+ cv2.waitKey(0)
194
+
195
+
196
+
167
197
  return img_back
168
198
 
169
199
 
170
200
 
171
- # # ------------------------
172
-
173
- # # FFT method with numpy
174
-
175
- # # ------------------------
176
-
177
- # # Get image size
178
-
179
- # row,col = img_ch.shape
180
-
181
- # row_center, col_center = int(row/2), int(col/2)
182
-
183
- #
184
-
185
- # # Calc FFT
186
-
187
- # fft = np.fft.fft2(img_ch)
188
-
189
- # fft_shift = np.fft.fftshift(fft)
190
-
191
- #
192
-
193
- # # MASK process
194
-
195
- # fft_shift[row_center-200:row_center+200, col_center-200:col_center+200] = 0
196
-
197
- #
198
-
199
- # # IFFT process
200
-
201
- # ifft_shift = np.fft.ifftshift(fft_shift)
202
-
203
- # ifft = np.fft.ifft2(ifft_shift)
204
-
205
- # img_back = np.abs(ifft)
206
-
207
- #
208
-
209
- # return img_back
210
-
211
-
212
-
213
201
  # --------------------------------------
214
202
 
215
203
  def MASK_PROCESS_BY_FFT(img_col):

7

自己解決に向けて調べた結果を追加、タイトルを分かりやすく修正

2017/06/12 22:15

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- OpenCVを使った、フーリエ変換でのマスク処理
1
+ フーリエ変換・逆フーリエ変換後に値が振り切って画像に戻せません
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- (6/12追記: pltを使って中身を確認しました)
25
+ (6/12 A.M 追記: pltを使って中身を確認しました)
26
26
 
27
27
  **・二値化?**
28
28
 
@@ -34,6 +34,16 @@
34
34
 
35
35
 
36
36
 
37
+ (6/12 P.M 追記: stackoverflowで似た様な事例を発見しました)
38
+
39
+ **・IDFT(IFFT)の結果が255を振り切っている件**
40
+
41
+ [stackoverflow](https://stackoverflow.com/questions/30127283/how-to-get-accurate-idft-result-from-opencv)
42
+
43
+
44
+
45
+
46
+
37
47
 
38
48
 
39
49
  ###該当のソースコード
@@ -42,7 +52,7 @@
42
52
 
43
53
  # -*- coding: utf-8 -*-
44
54
 
45
- print ("* Now initializing... import")
55
+ print ("* Now initializing... import")](https://stackoverflow.com/questions/30127283/how-to-get-accurate-idft-result-from-opencv)
46
56
 
47
57
  import sys
48
58
 

6

説明修正

2017/06/12 13:15

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -10,17 +10,7 @@
10
10
 
11
11
  ###発生している問題・エラーメッセージ
12
12
 
13
- FFT-->IFFTで画像が元に戻ることを確認するために、FFTとIFFT処理だけを実装してテストしましたが、以下のように画像が元に戻らない状態です。
13
+ FFT-->IFFTで画像が元に戻ることを確認するために、FFTとIFFT処理だけを実装してテストしましたが、以下のように画像が元に戻らない(ほぼ二値化し、色合いも異常になる)状態です。
14
-
15
-
16
-
17
- (6/12追記: シンプルな処理にして中身を確認しました)
18
-
19
- **・二値化に近い状態の件**
20
-
21
- IFFT後のプロット画像を見ると値に"*e^+7"がくっついており、このせいで画像がほぼ二値化してしまっているようです)
22
-
23
-
24
14
 
25
15
 
26
16
 
@@ -32,6 +22,16 @@
32
22
 
33
23
 
34
24
 
25
+ (6/12追記: pltを使って中身を確認しました)
26
+
27
+ **・二値化?**
28
+
29
+ IFFT後のプロット画像を見ると値に"*e^+7"がくっついており、このせいで画像がほぼ二値化してしまっているようです
30
+
31
+ **・色合いが異常**
32
+
33
+ 上記の二値化の影響で緑だけが突出してしまっているようです
34
+
35
35
 
36
36
 
37
37
 
@@ -52,6 +52,8 @@
52
52
 
53
53
  import numpy as np
54
54
 
55
+ from matplotlib import pyplot as plt
56
+
55
57
 
56
58
 
57
59
  # Global variables
@@ -68,58 +70,78 @@
68
70
 
69
71
  # ------------------------
70
72
 
71
- # Simple method to confirm
73
+ # DFT method with OpenCV
72
74
 
73
75
  # ------------------------
74
76
 
77
+ # Get image size
78
+
75
- rows, cols = img_ch.shape
79
+ row,col = img_ch.shape
76
-
80
+
77
- crow,ccol = int(rows/2) , int(cols/2)
81
+ row_center, col_center = int(row/2), int(col/2)
82
+
83
+
84
+
78
-
85
+ # Calclate optimized size for FFT
86
+
79
-
87
+ fft_row = cv2.getOptimalDFTSize(row)
88
+
80
-
89
+ fft_col = cv2.getOptimalDFTSize(col)
90
+
91
+
92
+
93
+ # Generate optimized image
94
+
95
+ img_merged = np.zeros((fft_row, fft_col), np.uint8)
96
+
97
+ img_merged[0:row,0:col] = img_ch
98
+
99
+
100
+
101
+ # Calc DFT
102
+
81
- dft = cv2.dft(np.float32(img_ch),flags = cv2.DFT_COMPLEX_OUTPUT)
103
+ dft = cv2.dft(np.float32(img_merged),flags=cv2.DFT_COMPLEX_OUTPUT)
104
+
105
+
106
+
107
+ # Shift DFT
82
108
 
83
109
  dft_shift = np.fft.fftshift(dft)
84
110
 
85
111
 
86
112
 
87
- magnitude_spectrum = 20*np.log(cv2.magnitude(dft_shift[:,:,0],dft_shift[:,:,1]))
88
-
89
-
90
-
91
- # plt.subplot(121),plt.imshow(img_ch, cmap = 'gray')
92
-
93
- # plt.title('Input Image'), plt.xticks([]), plt.yticks([])
94
-
95
- # plt.subplot(122),plt.imshow(magnitude_spectrum, cmap = 'gray')
96
-
97
- # plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])
98
-
99
- # plt.show()
113
+ # MASK process
100
-
101
-
102
-
103
- # create a mask first, center square is 1, remaining all zeros
114
+
104
-
105
- mask = np.zeros((rows,cols,2),np.uint8)
115
+ # mask = np.zeros((fft_row,fft_col,2),np.uint8)
106
-
116
+
107
- mask[crow-30:crow+30, ccol-30:ccol+30] = 1
117
+ # mask[row_center-200:row_center+200, col_center-200:col_center+200] = 1
108
-
109
-
110
-
111
- # apply mask and inverse DFT
118
+
112
-
113
- fshift = dft_shift*mask
119
+ # masked = dft_shift*mask
120
+
114
-
121
+ masked = dft_shift
122
+
123
+
124
+
125
+ # Calc IDFT
126
+
115
- f_ishift = np.fft.ifftshift(fshift)
127
+ f_ishift = np.fft.ifftshift(masked)
116
128
 
117
129
  img_back = cv2.idft(f_ishift)
118
130
 
131
+
132
+
119
133
  img_back = cv2.magnitude(img_back[:,:,0],img_back[:,:,1])
120
134
 
121
135
 
122
136
 
137
+ # Crop raw area
138
+
139
+ img_back = img_back[0:row, 0:col]
140
+
141
+
142
+
143
+ # Debug
144
+
123
145
  plt.subplot(121),plt.imshow(img_ch, cmap = 'gray')
124
146
 
125
147
  plt.title('Input Image'), plt.xticks([]), plt.yticks([])
@@ -138,7 +160,7 @@
138
160
 
139
161
  # # ------------------------
140
162
 
141
- # # DFT method with OpenCV
163
+ # # FFT method with numpy
142
164
 
143
165
  # # ------------------------
144
166
 
@@ -150,116 +172,34 @@
150
172
 
151
173
  #
152
174
 
153
- # # Calclate optimized size for FFT
175
+ # # Calc FFT
176
+
154
-
177
+ # fft = np.fft.fft2(img_ch)
178
+
155
- # fft_row = cv2.getOptimalDFTSize(row)
179
+ # fft_shift = np.fft.fftshift(fft)
156
-
157
- # fft_col = cv2.getOptimalDFTSize(col)
158
180
 
159
181
  #
160
182
 
161
- # # Generate optimized image
183
+ # # MASK process
162
-
184
+
163
- # img_merged = np.zeros((fft_row, fft_col), np.uint8)
185
+ # fft_shift[row_center-200:row_center+200, col_center-200:col_center+200] = 0
164
-
165
- # img_merged[0:row,0:col] = img_ch
166
186
 
167
187
  #
168
188
 
169
- # # Calc DFT
189
+ # # IFFT process
170
-
190
+
171
- # dft = cv2.dft(np.float32(img_merged),flags=cv2.DFT_COMPLEX_OUTPUT)
191
+ # ifft_shift = np.fft.ifftshift(fft_shift)
192
+
193
+ # ifft = np.fft.ifft2(ifft_shift)
194
+
195
+ # img_back = np.abs(ifft)
172
196
 
173
197
  #
174
198
 
175
- # # Shift DFT
176
-
177
- # dft_shift = np.fft.fftshift(dft)
178
-
179
- #
180
-
181
- # magnitude_spectrum = 20*np.log(cv2.magnitude(dft_shift[:,:,0],dft_shift[:,:,1]))
182
-
183
- # cv2.imshow("magnitude_spectrum",magnitude_spectrum)
184
-
185
- # # MASK process
186
-
187
- # # mask = np.zeros((fft_row,fft_col,2),np.uint8)
188
-
189
- # # mask[row_center-200:row_center+200, col_center-200:col_center+200] = 1
190
-
191
- # # masked = dft_shift*mask
192
-
193
- # masked = dft_shift
194
-
195
- #
196
-
197
- # # Calc IDFT
198
-
199
- # f_ishift = np.fft.ifftshift(masked)
200
-
201
- # img_back = cv2.idft(f_ishift)
202
-
203
- #
204
-
205
- # img_back = cv2.magnitude(img_back[:,:,0],img_back[:,:,1])
206
-
207
- #
208
-
209
- # # Crop raw area
210
-
211
- # img_back = img_back[0:row, 0:col]
212
-
213
- #
214
-
215
199
  # return img_back
216
200
 
217
201
 
218
202
 
219
- # # ------------------------
220
-
221
- # # FFT method with numpy
222
-
223
- # # ------------------------
224
-
225
- # # Get image size
226
-
227
- # row,col = img_ch.shape
228
-
229
- # row_center, col_center = int(row/2), int(col/2)
230
-
231
- #
232
-
233
- # # Calc FFT
234
-
235
- # fft = np.fft.fft2(img_ch)
236
-
237
- # fft_shift = np.fft.fftshift(fft)
238
-
239
- #
240
-
241
- # # MASK process
242
-
243
- # fft_shift[row_center-200:row_center+200, col_center-200:col_center+200] = 0
244
-
245
- #
246
-
247
- # # IFFT process
248
-
249
- # ifft_shift = np.fft.ifftshift(fft_shift)
250
-
251
- # ifft = np.fft.ifft2(ifft_shift)
252
-
253
- # img_back = np.abs(ifft)
254
-
255
- #
256
-
257
- # return img_back
258
-
259
-
260
-
261
-
262
-
263
203
  # --------------------------------------
264
204
 
265
205
  def MASK_PROCESS_BY_FFT(img_col):

5

変更点を明記

2017/06/11 22:35

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -12,6 +12,18 @@
12
12
 
13
13
  FFT-->IFFTで画像が元に戻ることを確認するために、FFTとIFFT処理だけを実装してテストしましたが、以下のように画像が元に戻らない状態です。
14
14
 
15
+
16
+
17
+ (6/12追記: シンプルな処理にして中身を確認しました)
18
+
19
+ **・二値化に近い状態の件**
20
+
21
+ IFFT後のプロット画像を見ると値に"*e^+7"がくっついており、このせいで画像がほぼ二値化してしまっているようです)
22
+
23
+
24
+
25
+
26
+
15
27
  |生画像|加工後画像|
16
28
 
17
29
  |:--|--:|

4

デバグ用のシンプルな処理を併記

2017/06/11 22:29

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -54,57 +54,53 @@
54
54
 
55
55
  def FFT_IFFT_FFT_core(img_ch):
56
56
 
57
+ # ------------------------
58
+
57
- # Get image size
59
+ # Simple method to confirm
60
+
58
-
61
+ # ------------------------
62
+
59
- row,col = img_ch.shape
63
+ rows, cols = img_ch.shape
60
-
64
+
61
- row_center, col_center = row/2, col/2
65
+ crow,ccol = int(rows/2) , int(cols/2)
62
-
63
-
64
-
65
- # Calclate optimized size for FFT
66
+
66
-
67
- fft_row = cv2.getOptimalDFTSize(row)
67
+
68
-
69
- fft_col = cv2.getOptimalDFTSize(col)
68
+
70
-
71
-
72
-
73
- # Generate optimized image
74
-
75
- img_merged = np.zeros((fft_row, fft_col), np.uint8)
76
-
77
- img_merged[0:row,0:col] = img_ch
78
-
79
-
80
-
81
- # Calc DFT
82
-
83
- dft = cv2.dft(np.float32(img_merged),flags=cv2.DFT_COMPLEX_OUTPUT)
69
+ dft = cv2.dft(np.float32(img_ch),flags = cv2.DFT_COMPLEX_OUTPUT)
84
-
85
-
86
-
87
- # Shift DFT
88
70
 
89
71
  dft_shift = np.fft.fftshift(dft)
90
72
 
91
73
 
92
74
 
75
+ magnitude_spectrum = 20*np.log(cv2.magnitude(dft_shift[:,:,0],dft_shift[:,:,1]))
76
+
77
+
78
+
79
+ # plt.subplot(121),plt.imshow(img_ch, cmap = 'gray')
80
+
81
+ # plt.title('Input Image'), plt.xticks([]), plt.yticks([])
82
+
83
+ # plt.subplot(122),plt.imshow(magnitude_spectrum, cmap = 'gray')
84
+
85
+ # plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])
86
+
93
- # MASK process
87
+ # plt.show()
88
+
89
+
90
+
94
-
91
+ # create a mask first, center square is 1, remaining all zeros
92
+
95
- #mask = np.zeros((fft_row,fft_col,2),np.uint8)
93
+ mask = np.zeros((rows,cols,2),np.uint8)
96
-
94
+
97
- #mask[fft_row-3:fft_row+3, fft_col-3:fft_col+3] = 1
95
+ mask[crow-30:crow+30, ccol-30:ccol+30] = 1
96
+
97
+
98
+
98
-
99
+ # apply mask and inverse DFT
100
+
99
- #masked = dft_shift*mask
101
+ fshift = dft_shift*mask
100
-
101
- masked = dft_shift
102
+
102
-
103
-
104
-
105
- # Calc IDFT
106
-
107
- f_ishift = np.fft.ifftshift(masked)
103
+ f_ishift = np.fft.ifftshift(fshift)
108
104
 
109
105
  img_back = cv2.idft(f_ishift)
110
106
 
@@ -112,9 +108,15 @@
112
108
 
113
109
 
114
110
 
115
- # Crop raw area
111
+ plt.subplot(121),plt.imshow(img_ch, cmap = 'gray')
112
+
116
-
113
+ plt.title('Input Image'), plt.xticks([]), plt.yticks([])
114
+
117
- img_back = img_back[0:row, 0:col]
115
+ plt.subplot(122),plt.imshow(img_back, cmap = 'gray')
116
+
117
+ plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])
118
+
119
+ plt.show()
118
120
 
119
121
 
120
122
 
@@ -122,6 +124,130 @@
122
124
 
123
125
 
124
126
 
127
+ # # ------------------------
128
+
129
+ # # DFT method with OpenCV
130
+
131
+ # # ------------------------
132
+
133
+ # # Get image size
134
+
135
+ # row,col = img_ch.shape
136
+
137
+ # row_center, col_center = int(row/2), int(col/2)
138
+
139
+ #
140
+
141
+ # # Calclate optimized size for FFT
142
+
143
+ # fft_row = cv2.getOptimalDFTSize(row)
144
+
145
+ # fft_col = cv2.getOptimalDFTSize(col)
146
+
147
+ #
148
+
149
+ # # Generate optimized image
150
+
151
+ # img_merged = np.zeros((fft_row, fft_col), np.uint8)
152
+
153
+ # img_merged[0:row,0:col] = img_ch
154
+
155
+ #
156
+
157
+ # # Calc DFT
158
+
159
+ # dft = cv2.dft(np.float32(img_merged),flags=cv2.DFT_COMPLEX_OUTPUT)
160
+
161
+ #
162
+
163
+ # # Shift DFT
164
+
165
+ # dft_shift = np.fft.fftshift(dft)
166
+
167
+ #
168
+
169
+ # magnitude_spectrum = 20*np.log(cv2.magnitude(dft_shift[:,:,0],dft_shift[:,:,1]))
170
+
171
+ # cv2.imshow("magnitude_spectrum",magnitude_spectrum)
172
+
173
+ # # MASK process
174
+
175
+ # # mask = np.zeros((fft_row,fft_col,2),np.uint8)
176
+
177
+ # # mask[row_center-200:row_center+200, col_center-200:col_center+200] = 1
178
+
179
+ # # masked = dft_shift*mask
180
+
181
+ # masked = dft_shift
182
+
183
+ #
184
+
185
+ # # Calc IDFT
186
+
187
+ # f_ishift = np.fft.ifftshift(masked)
188
+
189
+ # img_back = cv2.idft(f_ishift)
190
+
191
+ #
192
+
193
+ # img_back = cv2.magnitude(img_back[:,:,0],img_back[:,:,1])
194
+
195
+ #
196
+
197
+ # # Crop raw area
198
+
199
+ # img_back = img_back[0:row, 0:col]
200
+
201
+ #
202
+
203
+ # return img_back
204
+
205
+
206
+
207
+ # # ------------------------
208
+
209
+ # # FFT method with numpy
210
+
211
+ # # ------------------------
212
+
213
+ # # Get image size
214
+
215
+ # row,col = img_ch.shape
216
+
217
+ # row_center, col_center = int(row/2), int(col/2)
218
+
219
+ #
220
+
221
+ # # Calc FFT
222
+
223
+ # fft = np.fft.fft2(img_ch)
224
+
225
+ # fft_shift = np.fft.fftshift(fft)
226
+
227
+ #
228
+
229
+ # # MASK process
230
+
231
+ # fft_shift[row_center-200:row_center+200, col_center-200:col_center+200] = 0
232
+
233
+ #
234
+
235
+ # # IFFT process
236
+
237
+ # ifft_shift = np.fft.ifftshift(fft_shift)
238
+
239
+ # ifft = np.fft.ifft2(ifft_shift)
240
+
241
+ # img_back = np.abs(ifft)
242
+
243
+ #
244
+
245
+ # return img_back
246
+
247
+
248
+
249
+
250
+
125
251
  # --------------------------------------
126
252
 
127
253
  def MASK_PROCESS_BY_FFT(img_col):

3

DFT用のゼロパディング部分の簡素化

2017/06/11 22:24

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -72,19 +72,15 @@
72
72
 
73
73
  # Generate optimized image
74
74
 
75
- right = fft_col - col
76
-
77
- bottom = fft_row - row
78
-
79
- bordertype = cv2.BORDER_CONSTANT
80
-
81
- img_opt = cv2.copyMakeBorder(img_ch,0,bottom,0,right,bordertype, value = 0)
75
+ img_merged = np.zeros((fft_row, fft_col), np.uint8)
76
+
77
+ img_merged[0:row,0:col] = img_ch
82
78
 
83
79
 
84
80
 
85
81
  # Calc DFT
86
82
 
87
- dft = cv2.dft(np.float32(img_opt),flags=cv2.DFT_COMPLEX_OUTPUT)
83
+ dft = cv2.dft(np.float32(img_merged),flags=cv2.DFT_COMPLEX_OUTPUT)
88
84
 
89
85
 
90
86
 

2

画像の表内への埋め込み

2017/06/11 12:36

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- OpenCVを使ったフーリエ変換でのマスク処理
1
+ OpenCVを使ったフーリエ変換でのマスク処理
test CHANGED
@@ -12,11 +12,13 @@
12
12
 
13
13
  FFT-->IFFTで画像が元に戻ることを確認するために、FFTとIFFT処理だけを実装してテストしましたが、以下のように画像が元に戻らない状態です。
14
14
 
15
-
16
-
17
- *生画像 *FFT-->(マスク処理なし)-->IFFT
15
+ |生画像|加工後画像|
16
+
18
-
17
+ |:--|--:|
18
+
19
- ![生画像](59a65caf9f5c3592f28efa455bbb955c.png) ![処理後](9c0a1c4748cecb2bfb908b1d0980f64e.jpeg)
19
+ |![生画像](59a65caf9f5c3592f28efa455bbb955c.png)|![処理後](9c0a1c4748cecb2bfb908b1d0980f64e.jpeg)|
20
+
21
+
20
22
 
21
23
 
22
24
 

1

タイトルの誤植修正

2017/06/11 07:42

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- OpenCVを使ったフーリエ変換を使ったマスク処理
1
+ OpenCVを使ったフーリエ変換でのマスク処理
test CHANGED
File without changes