Files
ImageProcessing/lab1/DE_IP_2024_Task_1.ipynb
T

1227 lines
3.0 MiB
Plaintext
Raw Normal View History

2025-10-14 04:44:42 +03:00
{
"cells": [
{
"cell_type": "code",
2025-10-14 04:59:57 +03:00
"execution_count": 1,
2025-10-14 04:44:42 +03:00
"id": "d5d62d24",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import cv2\n",
2025-10-14 05:47:37 +03:00
"import matplotlib as mpl\n",
2025-10-14 04:44:42 +03:00
"import matplotlib.pyplot as plt"
]
},
2025-10-14 04:59:57 +03:00
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 81,
2025-10-14 04:59:57 +03:00
"id": "40a56d12-cc0f-481d-b3c5-c2020a7d137b",
"metadata": {},
"outputs": [],
"source": [
2025-10-14 05:47:37 +03:00
"from dataclasses import asdict\n",
"from catppuccin.palette import PALETTE\n",
"mpl.style.use(\"mocha\")\n",
"colors = asdict(PALETTE.__getattribute__(\"mocha\").colors)"
2025-10-14 04:59:57 +03:00
]
},
2025-10-14 04:44:42 +03:00
{
"cell_type": "markdown",
"id": "2799ab25",
2025-10-14 05:47:37 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"source": [
2025-10-14 04:46:56 +03:00
"## Базовая работа с изображением"
2025-10-14 04:44:42 +03:00
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 3,
2025-10-14 04:44:42 +03:00
"id": "5037aa29",
"metadata": {},
"outputs": [],
"source": [
"image = cv2.imread('sar_2_color.jpg')"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 4,
2025-10-14 04:44:42 +03:00
"id": "3e5f356b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 05:47:37 +03:00
"<matplotlib.image.AxesImage at 0x7f7c27880350>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 4,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2025-10-14 05:47:37 +03:00
"image/png": "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
2025-10-14 04:44:42 +03:00
"text/plain": [
2025-10-14 04:46:56 +03:00
"<Figure size 640x480 with 1 Axes>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 04:46:56 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"output_type": "display_data"
}
],
"source": [
"plt.imshow(image)"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 5,
2025-10-14 04:44:42 +03:00
"id": "37b8f016",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(572, 974, 3)"
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 5,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"image.shape # h,w,c"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 6,
2025-10-14 04:44:42 +03:00
"id": "e4530952",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([12, 12, 12], dtype=uint8)"
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 6,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"image[250,250] # b,g,r"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 7,
2025-10-14 04:44:42 +03:00
"id": "51aab9ce",
"metadata": {},
"outputs": [],
"source": [
"# ROI\n",
"img_roi = image[100:200, 500:700]"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 8,
2025-10-14 04:44:42 +03:00
"id": "70010d8b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 05:47:37 +03:00
"<matplotlib.image.AxesImage at 0x7f7c278e1bb0>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 8,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2025-10-14 05:47:37 +03:00
"image/png": "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
2025-10-14 04:44:42 +03:00
"text/plain": [
2025-10-14 04:46:56 +03:00
"<Figure size 640x480 with 1 Axes>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 04:46:56 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"output_type": "display_data"
}
],
"source": [
"plt.imshow(img_roi)"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 9,
2025-10-14 04:44:42 +03:00
"id": "f882dac3",
"metadata": {},
"outputs": [],
"source": [
"b,g,r = cv2.split(image)"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 10,
2025-10-14 04:44:42 +03:00
"id": "1f89e4b5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 05:47:37 +03:00
"<matplotlib.image.AxesImage at 0x7f7c2785de50>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 10,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2025-10-14 05:47:37 +03:00
"image/png": "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
2025-10-14 04:44:42 +03:00
"text/plain": [
2025-10-14 04:46:56 +03:00
"<Figure size 640x480 with 1 Axes>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 04:46:56 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"output_type": "display_data"
}
],
"source": [
"plt.imshow(b, cmap = 'gray')"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 11,
2025-10-14 04:44:42 +03:00
"id": "80f48335",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 05:47:37 +03:00
"<matplotlib.image.AxesImage at 0x7f7c27970590>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 11,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2025-10-14 05:47:37 +03:00
"image/png": "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
2025-10-14 04:44:42 +03:00
"text/plain": [
2025-10-14 04:46:56 +03:00
"<Figure size 640x480 with 1 Axes>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 04:46:56 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"output_type": "display_data"
}
],
"source": [
"plt.imshow(g, cmap = 'gray')"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 12,
2025-10-14 04:44:42 +03:00
"id": "14bf6bec",
"metadata": {},
"outputs": [],
"source": [
"# alternative approach\n",
"b = image[:,:,0]"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 13,
2025-10-14 04:44:42 +03:00
"id": "65f6cb65",
"metadata": {},
"outputs": [],
"source": [
"import copy\n",
"\n",
"image2 = copy.deepcopy(image)"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 14,
2025-10-14 04:44:42 +03:00
"id": "6e348740",
"metadata": {},
"outputs": [],
"source": [
"image2[50:100,50:100] = [0,0,0]"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 15,
2025-10-14 04:44:42 +03:00
"id": "f0af9079",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 05:47:37 +03:00
"<matplotlib.image.AxesImage at 0x7f7c1c3b8890>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 15,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2025-10-14 05:47:37 +03:00
"image/png": "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
2025-10-14 04:44:42 +03:00
"text/plain": [
2025-10-14 04:46:56 +03:00
"<Figure size 640x480 with 1 Axes>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 04:46:56 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"output_type": "display_data"
}
],
"source": [
"plt.imshow(image2)"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 16,
2025-10-14 04:44:42 +03:00
"id": "7b3beafd",
"metadata": {},
"outputs": [],
"source": [
"# empty image\n",
"image_template = np.zeros(image.shape,np.uint8)"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 17,
2025-10-14 04:44:42 +03:00
"id": "649438f3",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 05:47:37 +03:00
"<matplotlib.image.AxesImage at 0x7f7c1c3f8560>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 17,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2025-10-14 05:47:37 +03:00
"image/png": "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
2025-10-14 04:44:42 +03:00
"text/plain": [
2025-10-14 04:46:56 +03:00
"<Figure size 640x480 with 1 Axes>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 04:46:56 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"output_type": "display_data"
}
],
"source": [
"plt.imshow(image_template)"
]
},
{
"cell_type": "markdown",
"id": "3c9b56ab",
2025-10-14 05:47:37 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"source": [
2025-10-14 04:46:56 +03:00
"## Конвертация цветовых моделей"
2025-10-14 04:44:42 +03:00
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 18,
2025-10-14 04:44:42 +03:00
"id": "ddf46c8d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0, 0, 0], dtype=uint8)"
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 18,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"image_template[0,0]"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 19,
2025-10-14 04:44:42 +03:00
"id": "90601bc7",
"metadata": {},
"outputs": [],
"source": [
"image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) "
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 20,
2025-10-14 04:44:42 +03:00
"id": "4254803d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 04:46:56 +03:00
"np.uint8(40)"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 20,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"image_gray[0,0]"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 21,
2025-10-14 04:44:42 +03:00
"id": "abb0a164",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(572, 974)"
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 21,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"image_gray.shape"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 22,
2025-10-14 04:44:42 +03:00
"id": "f282c88e",
"metadata": {},
"outputs": [],
"source": [
"image_hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) "
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 23,
2025-10-14 04:44:42 +03:00
"id": "d37c08b1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(572, 974, 3)"
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 23,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"image_hsv.shape"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 24,
2025-10-14 04:44:42 +03:00
"id": "ae9ef2ca",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([117, 143, 75], dtype=uint8)"
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 24,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"image_hsv[0,0]"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 25,
2025-10-14 04:44:42 +03:00
"id": "d8cdda21",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([75, 37, 33], dtype=uint8)"
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 25,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"image[0,0]"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 26,
2025-10-14 04:44:42 +03:00
"id": "73fdb374",
"metadata": {},
"outputs": [],
"source": [
"image_lab = cv2.cvtColor(image, cv2.COLOR_BGR2Lab)"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 27,
2025-10-14 04:44:42 +03:00
"id": "0ed9c8e4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 42, 139, 104], dtype=uint8)"
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 27,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"image_lab[0,0]"
]
},
{
"cell_type": "markdown",
"id": "e0d7f4f0",
2025-10-14 05:47:37 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"source": [
2025-10-14 04:46:56 +03:00
"## Пороговая фильтрация"
2025-10-14 04:44:42 +03:00
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 28,
2025-10-14 04:44:42 +03:00
"id": "0b6d5e3f",
"metadata": {},
"outputs": [],
"source": [
"_,thresh1 = cv2.threshold(image_gray,200,255,cv2.THRESH_BINARY)"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 29,
2025-10-14 04:44:42 +03:00
"id": "6e84b905",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 05:47:37 +03:00
"<matplotlib.image.AxesImage at 0x7f7c1c367080>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 29,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2025-10-14 05:47:37 +03:00
"image/png": "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
2025-10-14 04:44:42 +03:00
"text/plain": [
2025-10-14 04:46:56 +03:00
"<Figure size 640x480 with 1 Axes>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 04:46:56 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"output_type": "display_data"
}
],
"source": [
"plt.imshow(thresh1, cmap='gray')"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 30,
2025-10-14 04:44:42 +03:00
"id": "f5e1453e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 04:46:56 +03:00
"np.uint64(0)"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 30,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"thresh1[thresh1==100].sum()"
]
},
{
"cell_type": "markdown",
"id": "396e3b66",
"metadata": {},
"source": [
2025-10-14 04:46:56 +03:00
"## Построение гистограммы"
2025-10-14 04:44:42 +03:00
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 31,
2025-10-14 04:44:42 +03:00
"id": "4b455e07",
"metadata": {},
"outputs": [],
"source": [
"histSize = 256\n",
"histRange = (0, 256)\n",
"accumulate = False\n",
"\n",
"b_hist = cv2.calcHist([b], [0], None, [histSize], histRange, accumulate=accumulate)"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 32,
2025-10-14 04:44:42 +03:00
"id": "477df536",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 05:47:37 +03:00
"[<matplotlib.lines.Line2D at 0x7f7c27883e60>]"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 32,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2025-10-14 05:47:37 +03:00
"image/png": "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
2025-10-14 04:44:42 +03:00
"text/plain": [
2025-10-14 04:46:56 +03:00
"<Figure size 640x480 with 1 Axes>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 04:46:56 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"output_type": "display_data"
}
],
"source": [
"plt.plot(b_hist)"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 33,
2025-10-14 04:44:42 +03:00
"id": "92636df5",
"metadata": {},
"outputs": [],
"source": [
"b_hist_cum = b_hist.cumsum()"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 34,
2025-10-14 04:44:42 +03:00
"id": "1a195130",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 05:47:37 +03:00
"[<matplotlib.lines.Line2D at 0x7f7c1c124980>]"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 34,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2025-10-14 05:47:37 +03:00
"image/png": "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
2025-10-14 04:44:42 +03:00
"text/plain": [
2025-10-14 04:46:56 +03:00
"<Figure size 640x480 with 1 Axes>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 04:46:56 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"output_type": "display_data"
}
],
"source": [
"plt.plot(b_hist_cum)"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 35,
2025-10-14 04:44:42 +03:00
"id": "e11f8476",
"metadata": {},
"outputs": [],
"source": [
"b_hist_norm = b_hist / (image.shape[0] * image.shape[1])"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 36,
2025-10-14 04:44:42 +03:00
"id": "ae7a2b79",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 05:47:37 +03:00
"[<matplotlib.lines.Line2D at 0x7f7c1c1bf230>]"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 36,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2025-10-14 05:47:37 +03:00
"image/png": "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
2025-10-14 04:44:42 +03:00
"text/plain": [
2025-10-14 04:46:56 +03:00
"<Figure size 640x480 with 1 Axes>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 04:46:56 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"output_type": "display_data"
}
],
"source": [
"plt.plot(b_hist_norm)"
]
},
{
"cell_type": "markdown",
"id": "aa3739f4",
2025-10-14 05:47:37 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"source": [
2025-10-14 04:46:56 +03:00
"## Сравнение двух изображений"
2025-10-14 04:44:42 +03:00
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 37,
2025-10-14 04:44:42 +03:00
"id": "b67e4981",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SSIM: 1.0\n"
]
}
],
"source": [
"from skimage.metrics import structural_similarity, mean_squared_error\n",
"\n",
"(ssim, diff) = structural_similarity(image_gray, image_gray, full=True)\n",
"diff = (diff * 255).astype(\"uint8\")\n",
"print(\"SSIM: {}\".format(ssim))"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 38,
2025-10-14 04:44:42 +03:00
"id": "e130dabe",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 05:47:37 +03:00
"<matplotlib.image.AxesImage at 0x7f7c04d1d520>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 38,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2025-10-14 05:47:37 +03:00
"image/png": "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
2025-10-14 04:44:42 +03:00
"text/plain": [
2025-10-14 04:46:56 +03:00
"<Figure size 640x480 with 1 Axes>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 04:46:56 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"output_type": "display_data"
}
],
"source": [
"plt.imshow(diff)"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 39,
2025-10-14 04:44:42 +03:00
"id": "03ab140b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 04:46:56 +03:00
"np.float64(0.0)"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 39,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mse = mean_squared_error(image_gray, image_gray)\n",
"mse"
]
},
{
"cell_type": "markdown",
"id": "a7c085bc",
2025-10-14 05:47:37 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"source": [
2025-10-14 04:46:56 +03:00
"## Статистические характеристики изображений"
2025-10-14 04:44:42 +03:00
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 40,
2025-10-14 04:44:42 +03:00
"id": "de9202f2",
"metadata": {},
"outputs": [],
"source": [
"mean = image_gray.mean()"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 41,
2025-10-14 04:44:42 +03:00
"id": "aaff4206",
"metadata": {},
"outputs": [],
"source": [
"std = image_gray.std()"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 42,
2025-10-14 04:44:42 +03:00
"id": "248147b1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"67.41225535245043 52.016191875959635\n"
]
}
],
"source": [
"print(mean,std)"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 43,
2025-10-14 04:44:42 +03:00
"id": "3fbab27e",
"metadata": {},
"outputs": [],
"source": [
"eq_gray = cv2.equalizeHist(image_gray)"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 44,
2025-10-14 04:44:42 +03:00
"id": "250af16c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 05:47:37 +03:00
"<matplotlib.image.AxesImage at 0x7f7bff23f890>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 44,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2025-10-14 05:47:37 +03:00
"image/png": "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
2025-10-14 04:44:42 +03:00
"text/plain": [
2025-10-14 04:46:56 +03:00
"<Figure size 640x480 with 1 Axes>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 04:46:56 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"output_type": "display_data"
}
],
"source": [
"plt.imshow(eq_gray, cmap=\"gray\")\n"
]
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 45,
2025-10-14 04:44:42 +03:00
"id": "7c013a0e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2025-10-14 05:47:37 +03:00
"<matplotlib.image.AxesImage at 0x7f7bff2bc590>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 05:47:37 +03:00
"execution_count": 45,
2025-10-14 04:44:42 +03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2025-10-14 05:47:37 +03:00
"image/png": "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
2025-10-14 04:44:42 +03:00
"text/plain": [
2025-10-14 04:46:56 +03:00
"<Figure size 640x480 with 1 Axes>"
2025-10-14 04:44:42 +03:00
]
},
2025-10-14 04:46:56 +03:00
"metadata": {},
2025-10-14 04:44:42 +03:00
"output_type": "display_data"
}
],
"source": [
"plt.imshow(image_gray, cmap=\"gray\")"
]
},
2025-10-14 04:46:56 +03:00
{
"cell_type": "markdown",
"id": "f3ad3ea1-b103-4383-8219-946233ef84c5",
"metadata": {},
"source": [
"# Задание"
]
},
2025-10-14 05:47:37 +03:00
{
"cell_type": "markdown",
"id": "8e91c442-8169-4179-9ee6-75022dc4f3b0",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"1. [x] Загрузите изображение в оттенках серого sar_1_gray.jpg. \n",
"2. [x] Постройте гистограмму\n",
"3. [x] Реализуйте алгоритм гамма коррекции с параметром гамма <1, >1.\n",
"4. [x] Сравните исходное изображение, скорректированное при помощи гамма-фильтра. MSE, SSIM.\n",
"5. [ ] Реализуйте алгоритм статистической цветокоррекции на основе статистики eq_gray.\n",
"6. [ ] Протестируйте работу алгоритмов пороговой фильтрации с различными параметрами.\n",
"\n",
"Для каждого решения напечатайте результат\n"
]
},
{
"cell_type": "markdown",
"id": "e84c055d-24d3-4e08-bed5-513199dd48d0",
"metadata": {},
"source": [
"## Загрузка"
]
},
2025-10-14 04:44:42 +03:00
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 87,
"id": "2427bbf1-ffed-4948-80e5-a102df665e9d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(400, 600)"
]
},
"execution_count": 87,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"image = cv2.imread('sar_1_gray.jpg', cv2.IMREAD_GRAYSCALE)\n",
"plt.imshow(image, cmap=\"gray\")\n",
"image.shape"
]
},
{
"cell_type": "markdown",
"id": "7682875b-29b9-456d-b541-be1872ea6934",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"## Гистограмма"
]
},
{
"cell_type": "code",
"execution_count": 70,
"id": "f3134249-c6c5-4373-bcf1-09bee7f2a87d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#hist = cv2.calcHist(image, [1], None, [256], (0, 255))\n",
"#plt.plot(hist)\n",
"_ = plt.hist(image.ravel(), bins=256)"
]
},
{
"cell_type": "markdown",
"id": "96ba1554-7885-41e1-8f3f-8d5af59e5345",
"metadata": {},
"source": [
"## MSE и SSIM"
]
},
{
"cell_type": "code",
"execution_count": 95,
"id": "8faf11eb-8aea-4720-b13a-84b83112765c",
2025-10-14 04:44:42 +03:00
"metadata": {},
"outputs": [],
"source": [
2025-10-14 05:47:37 +03:00
"def mse(img1, img2):\n",
" return np.mean((img1.astype(float) - img2.astype(float)) ** 2)\n",
"\n",
"def ssim(img1, img2):\n",
" C1 = (0.01 * 255) ** 2\n",
" C2 = (0.03 * 255) ** 2\n",
" \n",
" img1 = img1.astype(float)\n",
" img2 = img2.astype(float)\n",
" \n",
" mu1 = cv2.GaussianBlur(img1, (11, 11), 1.5)\n",
" mu2 = cv2.GaussianBlur(img2, (11, 11), 1.5)\n",
" \n",
" mu1_sq = mu1 ** 2\n",
" mu2_sq = mu2 ** 2\n",
" mu1_mu2 = mu1 * mu2\n",
" \n",
" sigma1_sq = cv2.GaussianBlur(img1 ** 2, (11, 11), 1.5) - mu1_sq\n",
" sigma2_sq = cv2.GaussianBlur(img2 ** 2, (11, 11), 1.5) - mu2_sq\n",
" sigma12 = cv2.GaussianBlur(img1 * img2, (11, 11), 1.5) - mu1_mu2\n",
" \n",
" numerator = (2 * mu1_mu2 + C1) * (2 * sigma12 + C2)\n",
" denominator = (mu1_sq + mu2_sq + C1) * (sigma1_sq + sigma2_sq + C2)\n",
" \n",
" ssim_map = numerator / denominator\n",
" return np.mean(ssim_map)"
]
},
{
"cell_type": "markdown",
"id": "eec5284a-a3ab-4586-8027-f3200b49b8eb",
"metadata": {},
"source": [
"## Гамма-коррекция"
2025-10-14 04:44:42 +03:00
]
2025-10-14 04:46:56 +03:00
},
{
"cell_type": "code",
2025-10-14 05:47:37 +03:00
"execution_count": 71,
"id": "27333afa-6b18-44d0-b1b9-6183bad74e9a",
2025-10-14 04:46:56 +03:00
"metadata": {},
"outputs": [],
"source": [
2025-10-14 05:47:37 +03:00
"def gamma_correction(image, gamma):\n",
" image_normalized = image.astype(np.float32) / 255.0\n",
" corrected = np.power(image_normalized, gamma)\n",
" return (corrected * 255).astype(np.uint8)"
]
},
{
"cell_type": "markdown",
"id": "2311c3da-523d-48b1-a3b8-b080b5ca855f",
"metadata": {},
"source": [
"### <1"
]
},
{
"cell_type": "code",
"execution_count": 94,
"id": "510bde0a-9922-4534-a2ef-dbfdc19d0979",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"image_gamma = gamma_correction(image, .5)\n",
"_ = plt.hist(image_gamma.ravel(), bins=256, color=colors['green']['hex'])"
]
},
{
"cell_type": "code",
"execution_count": 97,
"id": "fe0e57d1-7c9f-40c1-af77-1047f7751bac",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MSE: 3250.429145833333\n",
"SSIM: 0.7826855938698241\n"
]
}
],
"source": [
"print(f\"MSE: \", mse(image, image_gamma))\n",
"print(f\"SSIM: \", ssim(image, image_gamma))"
]
},
{
"cell_type": "markdown",
"id": "b6293286-528d-4b49-899a-262a47edefc4",
"metadata": {},
"source": [
"### >1"
]
},
{
"cell_type": "code",
"execution_count": 98,
"id": "068e5785-192c-4c0b-9037-64692de14ede",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"image_gamma = gamma_correction(image, 2.)\n",
"_ = plt.hist(image_gamma.ravel(), bins=256, color=colors['red']['hex'])"
]
},
{
"cell_type": "code",
"execution_count": 99,
"id": "453e0b4c-2109-4ead-b667-0619e475accd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MSE: 2383.7636375\n",
"SSIM: 0.5193678832134501\n"
]
}
],
"source": [
"print(f\"MSE: \", mse(image, image_gamma))\n",
"print(f\"SSIM: \", ssim(image, image_gamma))"
2025-10-14 04:46:56 +03:00
]
},
{
"cell_type": "code",
"execution_count": null,
2025-10-14 05:47:37 +03:00
"id": "6a8c39b9-66c5-42c0-9d31-ae503a0848cd",
2025-10-14 04:46:56 +03:00
"metadata": {},
"outputs": [],
"source": []
2025-10-14 04:44:42 +03:00
}
],
"metadata": {
"kernelspec": {
2025-10-14 04:46:56 +03:00
"display_name": "Python 3",
2025-10-14 04:44:42 +03:00
"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",
2025-10-14 04:46:56 +03:00
"version": "3.12.11"
2025-10-14 04:44:42 +03:00
}
},
"nbformat": 4,
"nbformat_minor": 5
}