{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from ipfml import metrics, processing, utils\n", "from ipfml.filters import noise\n", "from PIL import Image" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "calibration_image_path = \"images/calibration.png\"" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "calib_img = Image.open(calibration_image_path)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAACfklEQVR4nO3dUWrCUBBA0Vrcl7iyTFYm7qwbKA8sXo3lnN9BGMJlPuJHTjPzBc/2/e4F+J+ERUJYJIRFQlgkhEVCWCSERUJYJM7r8XbI9/L7cqtt2161yAP2fV9MZ46488xq5zUXi4SwSAiLhLBICIuEsEgIi4SwSAiLhLBICIuEsEgIi4SwSAiLhLBICIuEsEgIi4SwSAiLhLBICIuEsEgIi4SwSAiLhLBICIuEsEgIi4SwSAiLhLBICIuEsEgIi4SwSAiLhLBICIuEsEgIi4SwSAiLhLBICIuEsEgIi8RpDvkNVT6di0VCWCSERUJYJIRFQlgkhEVCWCSEReK8Hl8ul9fs8ZD7/f7uFZ7sdru9e4XfXa/Xv/3QxSIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiJxmpl378A/5GKREBYJYZEQFglhkRAWCWGREBYJYZE4r8ezzUvWeMzss5oe8r+E9VbbIZ/zvnzOay4WCWGREBYJYZEQFglhkRAWCWGREBYJYZEQFglhkRAWCWGREBYJYZEQFglhkRAWCWGREBYJYZEQFglhkRAWCWGREBYJYZEQFglhkRAWCWGREBYJYZEQFglhkRAWCWGREBYJYZEQFglhkRAWCWGREBYJYZEQFglhkRAWidMxv0fKp3OxSAiLhLBICIuEsEgIi4SwSAiLhLBICIuEsEgIi4SwSAiLhLBICIuEsEgIi4SwSPwA3WEfk9NWw6YAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "calib_img" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image.fromarray(noise.salt_pepper_noise(calib_img, 999, True, 0.1, 0.5))" ] } ], "metadata": { "kernelspec": { "display_name": "thesis-venv", "language": "python", "name": "thesis-venv" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.0" } }, "nbformat": 4, "nbformat_minor": 2 }