diff --git a/03_spectral_images/01_discrete_fourier_transform.ipynb b/03_spectral_images/01_discrete_fourier_transform.ipynb index bb2f4eaa33c4ccd7343103f3cb566d1eff3ef5dd..cc3b080f4874e98068843dc4beffa92ccd105fb7 100644 --- a/03_spectral_images/01_discrete_fourier_transform.ipynb +++ b/03_spectral_images/01_discrete_fourier_transform.ipynb @@ -15,7 +15,6 @@ "source": [ "### Teil 1\n", "Visualisieren Sie die Fouriertransformierteder Bilder square.png, rectangle.png und circle.png.\n", - "\n", "Orientieren Sie sich hierbei am [OpenCV Tutorial zur Diskreten Fourier Transformation](https://docs.opencv.org/4.5.0/d8/d01/tutorial_discrete_fourier_transform.html)." ] }, @@ -46,9 +45,10 @@ "%matplotlib inline\n", "from matplotlib import pyplot as plt\n", "\n", - "def fourier(img):\n", + "def fourier_transform(img):\n", " \n", - " # TODO: implementieren Sie die Fourier Transformation wie im Tutorial\n", + " # TODO: Implementieren Sie die Fourier-Transformation wie im OpenCV Tutorial geben Sie das ergebnis mittels \n", + " # des returns zurück\n", " \n", " return img\n", "\n", @@ -60,15 +60,15 @@ "fig, axs = plt.subplots(2, 3, figsize = (14, 10))\n", "_ = axs[0, 0].imshow(img_square, cmap = 'gray')\n", "_ = axs[0, 0].set_title('Square')\n", - "_ = axs[1, 0].imshow(fourier(img_square), cmap = 'gray')\n", + "_ = axs[1, 0].imshow(fourier_transform(img_square), cmap = 'gray')\n", "_ = axs[1, 0].set_title('Square Fourier')\n", "_ = axs[0, 1].imshow(img_rectangle, cmap = 'gray')\n", "_ = axs[0, 1].set_title('Rectangle')\n", - "_ = axs[1, 1].imshow(fourier(img_rectangle), cmap = 'gray')\n", + "_ = axs[1, 1].imshow(fourier_transform(img_rectangle), cmap = 'gray')\n", "_ = axs[1, 1].set_title('Rectangle Fourier')\n", "_ = axs[0, 2].imshow(img_circle, cmap = 'gray')\n", "_ = axs[0, 2].set_title('Circle')\n", - "_ = axs[1, 2].imshow(fourier(img_circle), cmap = 'gray')\n", + "_ = axs[1, 2].imshow(fourier_transform(img_circle), cmap = 'gray')\n", "_ = axs[1, 2].set_title('Circle Fourier')" ] }, @@ -100,9 +100,10 @@ } ], "source": [ - "def high_pass(img, size): \n", - " \n", - " # TODO: implementieren Sie den Hochpassfilter mit size um die Frequenzen zu filtern\n", + "def high_pass(img, frequency):\n", + "\n", + " # TODO: Implementieren Sie die Anwendung des Hochpassfilters und geben Sie das Ergebnis mittels\n", + " # des returns zurück. Dabei sollen alle Frequenzen kleiner als frequency gefiltert werden\n", "\n", " return img\n", "\n", @@ -112,11 +113,11 @@ "fig, axs = plt.subplots(2, 2, figsize = (16, 10))\n", "_ = axs[0, 0].imshow(img_fh, cmap = 'gray')\n", "_ = axs[0, 0].set_title('FH')\n", - "_ = axs[1, 0].imshow(high_pass(img_fh, 50), cmap = 'gray')\n", + "_ = axs[1, 0].imshow(high_pass(img_fh, -25000), cmap = 'gray')\n", "_ = axs[1, 0].set_title('FH High Pass')\n", "_ = axs[0, 1].imshow(img_jahrmarkt, cmap = 'gray')\n", "_ = axs[0, 1].set_title('Jahrmarkt')\n", - "_ = axs[1, 1].imshow(high_pass(img_jahrmarkt, 30), cmap = 'gray')\n", + "_ = axs[1, 1].imshow(high_pass(img_jahrmarkt, -40000), cmap = 'gray')\n", "_ = axs[1, 1].set_title('Jahrmarkt High Pass')" ] }, @@ -148,20 +149,21 @@ } ], "source": [ - "def low_pass(img, size):\n", + "def low_pass(img, frequency):\n", " \n", - " # TODO: implementieren Sie den Tiefpassfilter mit size um die Frequenzen zu filtern\n", + " # TODO: Implementieren Sie die Anwendung des Tiefpassfilters und geben Sie das Ergebnis mittels\n", + " # des returns zurück. Dabei sollen alle Frequenzen größer als frequency gefiltert werden\n", "\n", " return img\n", "\n", "fig, axs = plt.subplots(2, 2, figsize = (16, 10))\n", "_ = axs[0, 0].imshow(img_fh, cmap = 'gray')\n", "_ = axs[0, 0].set_title('FH')\n", - "_ = axs[1, 0].imshow(low_pass(img_fh, 40), cmap = 'gray')\n", + "_ = axs[1, 0].imshow(low_pass(img_fh, 400000), cmap = 'gray')\n", "_ = axs[1, 0].set_title('FH Low Pass')\n", "_ = axs[0, 1].imshow(img_jahrmarkt, cmap = 'gray')\n", "_ = axs[0, 1].set_title('Jahrmarkt')\n", - "_ = axs[1, 1].imshow(low_pass(img_jahrmarkt, 10), cmap = 'gray')\n", + "_ = axs[1, 1].imshow(low_pass(img_jahrmarkt, 5000000), cmap = 'gray')\n", "_ = axs[1, 1].set_title('Jahrmarkt Low Pass')" ] }, @@ -171,7 +173,7 @@ "source": [ "### Hinweise:\n", "\n", - "* Für die inverse Fourier-Transformation nutzen Sie die OpenCV Funktion [dft](https://docs.opencv.org/3.4/d2/de8/group__core__array.html#gadd6cf9baf2b8b704a11b5f04aaf4f39d)" + "* Für die inverse Fourier-Transformation nutzen Sie die OpenCV Funktion [dft](https://docs.opencv.org/3.4/d2/de8/group__core__array.html#gadd6cf9baf2b8b704a11b5f04aaf4f39d) oder [idft](https://docs.opencv.org/3.4/d2/de8/group__core__array.html#gaa708aa2d2e57a508f968eb0f69aa5ff1)" ] }, {