{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from skimage.io import imread\n", "\n", "car = imread('resources/auto.jpg')\n", "\n", "plt.imshow(car)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def get_region_index(color_value):\n", " # colors divided into 8 regions for each color space\n", " eight_regions = [[0,31], [32,63], [64,95], [96,127], [128,159], [160,191], [192,223], [224,255]]\n", " for index, region_value in enumerate(eight_regions):\n", " if color_value >= region_value[0] and color_value <= region_value[1]:\n", " return index\n", "\n", " \n", "r_region_mappings = [[],[],[],[],[],[],[],[]]\n", "g_region_mappings = [[],[],[],[],[],[],[],[]]\n", "b_region_mappings = [[],[],[],[],[],[],[],[]] \n", "\n", "# loop through all pixels and the put the colors into the respective color regions\n", "for rows in car:\n", " for pixel in rows:\n", " red = pixel[0]\n", " green = pixel[1]\n", " blue = pixel[2]\n", " #find the index where the color is supposed to go and add it\n", " r_region_mappings[get_region_index(red)].append(red)\n", " g_region_mappings[get_region_index(green)].append(green)\n", " b_region_mappings[get_region_index(blue)].append(blue)\n", " \n", "# find the color that represents each region\n", "r_representative_color_per_region = [0,0,0,0,0,0,0,0]\n", "g_representative_color_per_region = [0,0,0,0,0,0,0,0]\n", "b_representative_color_per_region = [0,0,0,0,0,0,0,0]" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# find the average of all colors in the regions to find the representative color\n", "for index in range(8):\n", " r_representative_color_per_region[index] = np.mean(r_region_mappings[index]).astype(int)\n", " g_representative_color_per_region[index] = np.mean(g_region_mappings[index]).astype(int)\n", " b_representative_color_per_region[index] = np.mean(b_region_mappings[index]).astype(int)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# now replace all colors in the image with their uniform quantized representative colors\n", "new_car = np.copy(car)\n", "for rindex, rows in enumerate(car):\n", " for cindex, pixel in enumerate(rows):\n", " red = pixel[0]\n", " green = pixel[1]\n", " blue = pixel[2]\n", " new_car[rindex, cindex][0] = r_representative_color_per_region[get_region_index(red)]\n", " new_car[rindex, cindex][1] = g_representative_color_per_region[get_region_index(green)]\n", " new_car[rindex, cindex][2] = b_representative_color_per_region[get_region_index(blue)]\n", " " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.imshow(new_car)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from skimage.io import imsave\n", "\n", "imsave('uniform_quantized.jpg', new_car)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "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.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }