diff --git a/basic/urls.py b/basic/urls.py index 261bf94..fe45ec1 100644 --- a/basic/urls.py +++ b/basic/urls.py @@ -24,4 +24,5 @@ urlpatterns = [ path('noise', views.noise), path('filter', views.filtration), path('wavelet', views.wavelet), + path('fourier', views.fourier) ] diff --git a/basic/views.py b/basic/views.py index 3d0374a..bb7a0f4 100644 --- a/basic/views.py +++ b/basic/views.py @@ -1083,5 +1083,28 @@ def wavelet(request): return HttpResponse('请使用POST方法') +@csrf_exempt +def fourier(request): + if request.method == 'POST': + para = json.loads(request.body) + image = para['img'] + img = cv2.imread(PREFIX + image, 0) + # 傅里叶 + f = np.fft.fft2(img) + fshift = np.fft.fftshift(f) + magnitude_spectrum = 20 * np.log(np.abs(fshift)) + # 逆傅里叶 + ishift = np.fft.ifftshift(f) + iimg = np.fft.ifft2(ishift) + iimg = np.abs(iimg) + fourier_transform_name = getImageName() + DEFAULT_FORMAT + inverse_name = getImageName() + DEFAULT_FORMAT + cv2.imwrite(PREFIX + fourier_transform_name, magnitude_spectrum) + cv2.imwrite(PREFIX + inverse_name, iimg) + ret = [{"fourier_transform": fourier_transform_name, "inverse": inverse_name}] + return HttpResponse(ret) + return HttpResponse('请使用POST方法') + + def r(request): return render(request, 'upload.html')