{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from PIL import Image\n",
    "from matplotlib.pyplot import imshow\n",
    "import numpy as np\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "img_lena = Image.open(\"images/lena.jpg\").convert('RGB')\n",
    "print(img_lena.width, img_lena.height, img_lena.mode, img_lena.format, type(img_lena))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "imshow(img_lena)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Resmi Kırpma (Crop)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# crop the rectangle given by (left, top, right, bottom) from the image\n",
    "im_c = img_lena.crop((100,75,150,150)) \n",
    "imshow(im_c)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Parlıklığı (Brightness) Arttırma"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "img_lena_array = np.array(img_lena)\n",
    "\n",
    "#her değeri 50 arttır\n",
    "for i in range(img_lena_array.shape[0]):\n",
    "    for j in range(img_lena_array.shape[1]):\n",
    "        for k in range(img_lena_array.shape[2]):\n",
    "            try:\n",
    "                if img_lena_array[i][j][k] + 50 <= 255: \n",
    "                    img_lena_array[i][j][k] =  img_lena_array[i][j][k] + 50\n",
    "            except IndexError:\n",
    "                continue\n",
    "                    \n",
    "imshow(img_lena_array)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Parlıklığı (Brightness) Düşürme"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "img_lena_array = np.array(img_lena)\n",
    "\n",
    "#her değeri 50 düşür\n",
    "for i in range(img_lena_array.shape[0]):\n",
    "    for j in range(img_lena_array.shape[1]):\n",
    "        for k in range(img_lena_array.shape[2]):\n",
    "            try:\n",
    "                if img_lena_array[i][j][k] - 50 >= 0: \n",
    "                    img_lena_array[i][j][k] =  img_lena_array[i][j][k] - 50\n",
    "            except IndexError:\n",
    "                continue\n",
    "                    \n",
    "imshow(img_lena_array)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Contrast"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "img_lena_array = np.array(img_lena)\n",
    "\n",
    "#her değeri 50 düşür\n",
    "for i in range(img_lena_array.shape[0]):\n",
    "    for j in range(img_lena_array.shape[1]):\n",
    "        for k in range(img_lena_array.shape[2]):\n",
    "            #bir eşik değeri belirlenip, o değerin altındaki pixel değerlerini düşürme veya değerin üzerindekileri arttırma\n",
    "            if img_lena_array[i][j][k] <= 127:\n",
    "                if img_lena_array[i][j][k] - 50 >= 0:\n",
    "                    img_lena_array[i][j][k] = img_lena_array[i][j][k] - 50 \n",
    "            else:\n",
    "                if img_lena_array[i][j][k] + 50 <= 255:\n",
    "                    img_lena_array[i][j][k] = img_lena_array[i][j][k] + 50 \n",
    "                    \n",
    "imshow(img_lena_array)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "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.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}