{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 8. FFT and image processing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This lesson will cover two aspects of scientific computing:\n", "
\n", " pkg install image\n", "\n", "When you run it as a non-privileged user, it gets installed into your own filespace only.\n", "\n", "After the package is installed, you may need to explicitly load it into your script, by specifying somewhere close to the beginning of the script:\n", "
\n", " pkg load image\n", "\n", "\n", "Note that the image package used above as an example is actually already installed on our cluster and these specific commands should not be necessary.\n", "\n", "To begin with, let's see how a matrix of numbers can be viewed as an image, and how an image can be imported and converted into a matrix of numbers." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Package Name | Version | Installation directory\r\n", "--------------+---------+-----------------------\r\n", " control | 3.2.0 | /usr/local/share/octave/packages/control-3.2.0\r\n", " dataframe | 1.2.0 | /home/esternin/octave/dataframe-1.2.0\r\n", " image | 2.6.2 | /usr/local/share/octave/packages/image-2.6.2\r\n", " io | 2.6.4 | /home/esternin/octave/io-2.6.4\r\n", " matgeom | 1.2.3 | /home/esternin/octave/matgeom-1.2.3\r\n", " optim | 1.5.2 | /usr/local/share/octave/packages/optim-1.5.2\r\n", " signal | 1.4.1 | /usr/local/share/octave/packages/signal-1.4.1\r\n", " statistics | 1.4.2 | /home/esternin/octave/statistics-1.4.2\r\n", " struct | 1.0.14 | /usr/local/share/octave/packages/struct-1.0.14\r\n" ] } ], "source": [ "pkg list" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
/work/5P10/Images
. Use appropriate forms of FFT, depending on the image.\n",
"\n",
" * Prepare and submit a full project write-up, as a Jupyter notebook, by November 23, 2023."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"%plot --format svg -w 900 -h 600"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
""
],
"text/plain": [
"