605 lines
7.2 MiB
Plaintext
605 lines
7.2 MiB
Plaintext
|
{
|
||
|
"cells": [
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 1,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"import cv2\n",
|
||
|
"import numpy as np\n",
|
||
|
"import matplotlib.pyplot as plt"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 2,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"import random\n",
|
||
|
"\n",
|
||
|
"def add_salt_and_pepper_noise(image, salt_pepper_ratio=0.02, amount=0.01):\n",
|
||
|
" # 获取图像的宽高\n",
|
||
|
" row, col = image.shape\n",
|
||
|
" # 计算要添加的噪声数量\n",
|
||
|
" num_salt = np.ceil(amount * image.size * salt_pepper_ratio)\n",
|
||
|
" num_pepper = np.ceil(amount * image.size * (1.0 - salt_pepper_ratio))\n",
|
||
|
"\n",
|
||
|
" # 随机选择像素点\n",
|
||
|
" coords = [(random.randint(0, row - 1), random.randint(0, col - 1)) for _ in range(int(num_salt))]\n",
|
||
|
" coords.extend([(random.randint(0, row - 1), random.randint(0, col - 1)) for _ in range(int(num_pepper))])\n",
|
||
|
" \n",
|
||
|
" # 将选中的像素点设置为白或黑\n",
|
||
|
" for coord in coords:\n",
|
||
|
" image[coord] = 255 if random.random() < salt_pepper_ratio else 0\n",
|
||
|
"\n",
|
||
|
" return image\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 3,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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
|
||
|
"text/plain": [
|
||
|
"<Figure size 640x480 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"#均值滤波\n",
|
||
|
"# 读取图像\n",
|
||
|
"I = cv2.imread('lena.bmp', cv2.IMREAD_GRAYSCALE)\n",
|
||
|
"plt.subplot(2, 2, 1)\n",
|
||
|
"plt.imshow(I, cmap='gray')\n",
|
||
|
"plt.title('raw')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"# 添加椒盐噪声\n",
|
||
|
"J = add_salt_and_pepper_noise(I)\n",
|
||
|
"\n",
|
||
|
"# 显示原图像和加噪图像\n",
|
||
|
"\n",
|
||
|
"plt.subplot(2, 2, 2)\n",
|
||
|
"plt.imshow(J, cmap='gray')\n",
|
||
|
"plt.title('add noise')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"# 均值滤波处理\n",
|
||
|
"K1 = cv2.blur(J, (3, 3))\n",
|
||
|
"K2 = cv2.blur(J, (5, 5))\n",
|
||
|
"\n",
|
||
|
"# 显示滤波处理结果\n",
|
||
|
"plt.subplot(2, 2, 3)\n",
|
||
|
"plt.imshow(K1, cmap='gray')\n",
|
||
|
"plt.title('3x3')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"plt.subplot(2, 2, 4)\n",
|
||
|
"plt.imshow(K2, cmap='gray')\n",
|
||
|
"plt.title('5x5')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"# 显示图像\n",
|
||
|
"plt.show()\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 4,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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
|
||
|
"text/plain": [
|
||
|
"<Figure size 640x480 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"#高斯滤波\n",
|
||
|
"# 读取图像\n",
|
||
|
"I = cv2.imread('lena.bmp', cv2.IMREAD_GRAYSCALE)\n",
|
||
|
"plt.subplot(2, 2, 1)\n",
|
||
|
"plt.imshow(I, cmap='gray')\n",
|
||
|
"plt.title('raw')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"# 添加椒盐噪声\n",
|
||
|
"J = add_salt_and_pepper_noise(I)\n",
|
||
|
"\n",
|
||
|
"# 显示原图像和加噪图像\n",
|
||
|
"\n",
|
||
|
"plt.subplot(2, 2, 2)\n",
|
||
|
"plt.imshow(J, cmap='gray')\n",
|
||
|
"plt.title('add noise')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"# 均值滤波处理\n",
|
||
|
"K1 = cv2.GaussianBlur(J, (3, 3),0)\n",
|
||
|
"K2 = cv2.GaussianBlur(J, (5, 5),0)\n",
|
||
|
"\n",
|
||
|
"# 显示滤波处理结果\n",
|
||
|
"plt.subplot(2, 2, 3)\n",
|
||
|
"plt.imshow(K1, cmap='gray')\n",
|
||
|
"plt.title('3x3')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"plt.subplot(2, 2, 4)\n",
|
||
|
"plt.imshow(K2, cmap='gray')\n",
|
||
|
"plt.title('5x5')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"# 显示图像\n",
|
||
|
"plt.show()\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 5,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcoAAAGZCAYAAAAJhnGFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9eZDl51Uejj936bvvt/d9erpnkzSj0S5ZtixLwo6xsNkS7FQIFKSKVIAiKapIJSRgioJ8cRUhCTFUEhITG4wxwibGWLZlG8u2bEmWZkYzo9l6lt6Xu+/7/fz+6N9z+nzeviP1EIPH5J6qru6+97O+73nP8pzldViWZaFPfepTn/rUpz71JOd3+wH61Kc+9alPfbqdqa8o+9SnPvWpT316A+oryj71qU996lOf3oD6irJPfepTn/rUpzegvqLsU5/61Kc+9ekNqK8o+9SnPvWpT316A+oryj71qU996lOf3oD6irJPfepTn/rUpzegvqLsU5/61Kc+9ekNqK8o+9SnPvXpO0h//dd/DYfDgb/+679+02Pf/va34+1vf/vf+jOZdCvP2CfA/d1+gD71qU996tPfLd1zzz345je/iWPHjn23H+V7gvqK8m+BqtUqAoHAd/sx+tSnPvWpJ0UiETz00EPf7cf4nqE+9Pp/Sb/6q78Kh8OBV199FT/yIz+CeDyOgwcP4tvf/jZ+7Md+DLOzs/D7/ZidncX73/9+LC0tybnFYhFutxsf+tCH5LN0Og2n04loNIp2uy2f//zP/zyGhobQ72Hfpz797dLi4iJ+8id/EgsLCwgEApiYmMDTTz+Ns2fP7jn24sWLeNe73oVAIIDBwUH8zM/8DEql0p7jLMvCb/3Wb2FmZgY+nw/33HMPPve5z+37mRwOB372Z38WH/3oR3H06FEEAgGcOHECf/mXf7nn2K9//et44oknEA6HEQgE8Mgjj+Czn/2s7Zhe0Ou1a9fwYz/2YxgfH4fX68XIyAieeOIJnD592nbuJz7xCTz88MMIBoMIhUJ45zvfiVOnTu37Xb4Xqa8ov0P0Qz/0Q5ifn8cnP/lJ/P7v/z5u3LiBw4cP43d+53fw+c9/Hv/f//f/YWNjA/fffz/S6TSAHavu/vvvx3PPPSfX+dKXvgSv14tSqYSXXnpJPn/uuefwjne8Aw6H4+/83frUp/+XaH19HclkEv/hP/wHPPvss/iv//W/wu1248EHH8SlS5fkuK2tLTz22GM4d+4cPvzhD+OjH/0oyuUyfvZnf3bPNT/4wQ/il37pl/DUU0/h05/+NP75P//n+Gf/7J/Zrvdm9NnPfha/+7u/i1/7tV/DM888g0QigR/8wR/EtWvX5JivfvWreMc73oFCoYA/+IM/wMc//nGEw2E8/fTT+MQnPvGG13/3u9+NV155Bb/1W7+FL37xi/i93/s9nDx5Evl8Xo75jd/4Dbz//e/HsWPH8Kd/+qf46Ec/ilKphLe+9a14/fXX9/0u33Nk9en/in7lV37FAmD9+3//79/wuHa7bZXLZSsYDFr/6T/9J/n8l3/5ly2/32/V63XLsizrp3/6p613vetd1vHjx60PfvCDlmVZ1tramgXA+m//7b/97b1In/rUp57UbretZrNpLSwsWP/yX/5L+fyXfumXLIfDYZ0+fdp2/FNPPWUBsL7yla9YlmVZuVzO8vl81g/+4A/ajvvGN75hAbAee+yxN30GANbIyIhVLBbls83NTcvpdFq/+Zu/KZ899NBD1vDwsFUqlWzPf+edd1qTk5NWt9u1LMuyvvKVr9ieMZ1OWwCs3/md37npMywvL1tut9v6uZ/7OdvnpVLJGh0dtf7hP/yHb/oe36vU9yi/Q/TDP/zDtv/L5TJ+6Zd+CfPz83C73XC73QiFQqhUKrhw4YIc98QTT6BWq+GFF14AsOM5PvXUU3jyySfxxS9+UT4DgCeffPLv6G361Kf/d6ndbuM3fuM3cOzYMXg8Hrjdbng8Hly5csW2dr/yla/gjjvuwIkTJ2znf+ADH7D9/81vfhP1eh3/+B//Y9vnjzzyCGZmZvb9XI8//jjC4bD8PzIyguHhYQnnVCoVvPjii/iRH/kRhEIhOc7lcuGf/JN/gtXV1Zt6sIlEAgcPHsSHPvQh/PZv/zZOnTqFbrdrO+bzn/882u02fvzHfxztdlt+fD4fHnvssb/XGbR9RfkdorGxMdv/H/jAB/C7v/u7+Omf/ml8/vOfx0svvYSXX34ZQ0NDqNVqctwjjzyCQCCA5557DouLi7hx44YoyhdffBHlchnPPfcc5ubmcODAgb/r1+pTn/6fo3/1r/4V/t2/+3d43/veh8985jN48cUX8fLLL+PEiRO2tZvJZDA6OrrnfPOzTCbT8/ObfXYzSiaTez7zer3yTLlcDpZl7ZFFADA+Pm57FpMcDge+9KUv4Z3vfCd+67d+C/fccw+Ghobw8z//8xJz3draAgDcf//9GBgYsP184hOfkJDS30fqZ71+h0jHDguFAv7yL/8Sv/Irv4J//a//tXzeaDSQzWZt53k8Hjz66KN47rnnMDk5idHRUdx1112Ym5sDsBN0/9KXvoT3vOc9fzcv0qc+/T9OH/vYx/DjP/7j+I3f+A3b5+l0GrFYTP5PJpPY3Nzcc775GRXczY6dnZ39v39oAPF4HE6nExsbG3u+W19fBwAMDg7e9PyZmRn8wR/8AQDg8uXL+NM//VP86q/+KprNJn7/939fzv2zP/uzW/KE/z5Q36P8WyCHwwHLsuD1em2f/4//8T/Q6XT2HP/kk0/ilVdewTPPPCPwajAYxEMPPYT/8l/+C9bX1/uwa5/69HdEDodjz9r97Gc/i7W1Ndtnjz/+OM6fP48zZ87YPv/jP/5j2/8PPfQQfD4f/uiP/sj2+QsvvGDLgv+/pWAwiAcffBB//ud/bvN8u90uPvaxj2FychKHDh3a17UOHTqEX/7lX8Zdd92FV199FQDwzne+E263G1evXsV9993X8+fvK/U9yr8FikQieNvb3oYPfehDGBwcxOzsLL761a/iD/7gD2wWKemJJ55Ap9PBl770JfzhH/6hfP7kk0/iV37lV+BwOPCOd7zj7/AN+tSn/3fpPe95Dz7ykY/gyJEjOH78OF555RV86EMfwuTkpO24X/iFX8D//J//E9///d+PX//1X8fIyAj+6I/+CBcvXrQdF4/H8Yu/+Iv49V//dfz0T/80fvRHfxQrKyv41V/91VuCXvdDv/mbv4mnnnoKjz/+OH7xF38RHo8HH/7wh3Hu3Dl8/OMfv2nW/GuvvYaf/dmfxY/+6I9iYWEBHo8HX/7yl/Haa68JKjY7O4tf+7Vfw7/9t/8W165dw7ve9S7E43FsbW3hpZdeQjAYxAc/+MHv6PvcNvTdzib6XidmvaZSKdvnq6ur1g//8A9b8XjcCofD1rve9S7r3Llz1szMjPVP/+k/tR3b7XatwcFBC4C1trYmnzMr7p577vm7eJU+9alP1k6W6k/91E9Zw8PDViAQsB599FHra1/7mvXYY4/tyVB9/fXXraeeesry+XxWIpGwfuqnfsr6i7/4C1tGqWXtrPHf/M3ftKampiyPx2MdP37c+sxnPtPzmr0IgPUv/sW/2PN5L3nyta99zXrHO95hBYNBy+/3Ww899JD1mc98xnaMmfW6tbVl/cRP/IR15MgRKxgMWqFQyDp+/Lj1H//jf7Ta7bbt3E9/+tPW448/bkUiEcvr9VozMzPWj/zIj1jPPffcm77H9yo5LKtfwd6nPvWpT33q082oH6PsU5/61Kc+9ekNqK8o+9SnPvWpT316A+oryj71qU996lOf3oD6irJPfepTn/rUpzegvqLsU5/61Kc+9ekNqK8o+9SnPvWpT316A9p3w4GPfOQj6Ha7cLlc6Ha76Ha76HQ6cDgc6HQ6sk+iw+GAy+WCx+OBy+WC1+uFw+FAt9tFs9lEPp9HsVjEysoKUqmUNNV1u91wOp1wu93odDpyH6dzR5dbloVutytNit1uN1wuF5xOJ1wuFwBgYGAATqdTznO5XGi1Wntf2u2GZVlwOBw9C3C73S4cDgecTqc
|
||
|
"text/plain": [
|
||
|
"<Figure size 640x480 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"#中值滤波\n",
|
||
|
"# 读取图像\n",
|
||
|
"I = cv2.imread('lena.bmp', cv2.IMREAD_GRAYSCALE)\n",
|
||
|
"plt.subplot(2, 2, 1)\n",
|
||
|
"plt.imshow(I, cmap='gray')\n",
|
||
|
"plt.title('raw')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"# 添加椒盐噪声\n",
|
||
|
"J = add_salt_and_pepper_noise(I)\n",
|
||
|
"plt.subplot(2, 2, 2)\n",
|
||
|
"plt.imshow(J, cmap='gray')\n",
|
||
|
"plt.title('add noise')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"# 中值滤波处理\n",
|
||
|
"K1 = cv2.medianBlur(J, 3)\n",
|
||
|
"K2 = cv2.medianBlur(J, 5)\n",
|
||
|
"\n",
|
||
|
"# 显示滤波处理结果\n",
|
||
|
"plt.subplot(2, 2, 3)\n",
|
||
|
"plt.imshow(K1, cmap='gray')\n",
|
||
|
"plt.title('3x3')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"plt.subplot(2, 2, 4)\n",
|
||
|
"plt.imshow(K2, cmap='gray')\n",
|
||
|
"plt.title('5x5')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"# 显示图像\n",
|
||
|
"plt.show()\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 43,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABrIAAAHACAYAAADuovhVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAABcSAAAXEgFnn9JSAAEAAElEQVR4nOy9d5zU1fX//5qZ3ZntHZbeQUCQJiiCgFGssWDDlijBiGISjYqdYEkUjRpbjF1JPjFil69dUVHsioJIR1CQsr2X2d25vz/4nTfnfea+Z2Zpi3Kej8c+dvddbr+n3Pb2GWMMFEVRFEVRFEVRFEVRFEVRFEVRFGUvw9/WCVAURVEURVEURVEURVEURVEURVEUGzqRpSiKoiiKoiiKoiiKoiiKoiiKouyV6ESWoiiKoiiKoiiKoiiKoiiKoiiKsleiE1mKoiiKoiiKoiiKoiiKoiiKoijKXolOZCmKoiiKoiiKoiiKoiiKoiiKoih7JTqRpSiKoiiKoiiKoiiKoiiKoiiKouyV6ESWoiiKoiiKoiiKoiiKoiiKoiiKsleiE1mKoiiKoiiKoiiKoiiKoiiKoijKXolOZCmKoiiKoiiKoiiKoiiKoiiKoih7JTqRpSiKoiiKoiiKoiiKoiiKoiiKouyV6ESWoiiKoiiKoiiKoiiKoiiKoiiKsleiE1mKoiiKoiiKoiiKoiiKoiiKoijKXolOZCmKoiiKoiiKoiiKoiiKoiiKoih7JTqRpSiKoiiKoiiK0kbU19e3dRIURVEURVEURVH2anQiS1EURVEURVF2A+eddx58Pp/156ijjor5bmNjI9LS0jzff/LJJ/dMJn6GrF+/3rPcEv15//33XWH26NHDdX/ChAlR8drqOxZFRUWYOnUq/v73v+/C3LcN9913X6vKd+zYsW2d5FZRUFDQqvy98847bZ1kRVEURVEURflFoRNZiqIoiqIoirKHWbhwIcLhsOf9Tz75RHfq/EJpbm7G3XffjX79+uHxxx9HJBJp6yTtNF9//XVbJ2G38eOPP6K0tLStk6EoiqIoiqIo+zRJbZ0ARVEURVEURdnXqKurwyeffILx48db77/77rt7OEXKnqCiogJjxozBsmXL2jopu5Rf8kTWLzlviqIoiqIoivJzQSeyFEVRFEVRFKUNmD9/vudE1vz58/dwan7ZZGRkYL/99kv4+czMTNf/BxxwAAoKCpz/WxMWp6Ki4hc3iRUOh6PyNHjwYASDQc93+vfvv7uTtcuQE1n5+fno0aNHzHeysrJ2Y4oURVEURVEUZd9DJ7IURVEURVEUpQ2YP38+brrppqjrNTU1+OKLL9ogRb9cRowYEfXdq9Ywb968XZeYXxjfffed65jMQCCAzz//HCkpKW2Yql2HnMiaNm0a/va3v7VRahRFURRFURRl30S/kaUoiqIoiqIoe4CCggIkJW1fR/b555+juro66rkPPvgATU1Nzv8dO3bcI+lTlB1BTvT07t37FzOJBUTnb9CgQW2UEkVRFEVRFEXZd9GJLEVRFEVRFEXZA6Snp2PEiBHO/83NzViwYEHUc/L7WF7HD3phjMHcuXMxadIkdOnSBaFQCPn5+RgyZAj+/Oc/Y/HixQmF09jYiMceewwnnngievbsifT0dAQCAaSnp6Nnz5447rjj8MADD6ChocEzjB49esDn8zk/999/PwCgtrYW9957L0aPHo38/Hykp6dj4MCBmDFjBn766adW5XdPIPMxYcKEVr3//vvvw+fzoWfPnlH3brzxRifc8847z/p+SUkJbr75Zhx00EEoKChAKBRC586dccQRR+Af//gHqqqqWpX++++/H3V1dbjyyivRtWtXhEIhdOjQAUceeSSWL1/eqrztiYmeTz/9FElJSa48+Hw+PPXUU1HPlpSUoF27dlHPzp07t9XxlpaWYsOGDa5rOpGlKIqiKIqiKHsePVpQURRFURRFUfYQEyZMwGeffeb8P3/+fPz61792PSO/jzVhwgQ8/fTTCYX/ww8/4NRTT8WXX37pul5WVoaysjIsWbIE9957L84//3zcd999nt8xWrVqFX79619j9erVUffq6uqwfv16rF+/Hq+99hruu+8+vPDCCxgwYEBCaVyyZAlOO+00rFq1ynV9+fLlWL58Of71r3/h2WefxTHHHJNQeL90nnrqKUyfPh2VlZWu65s2bcKmTZswf/583HrrrXjwwQdx8sknJxRmOBzGr3/9a7z33nvOta1bt+LDDz9E586dW5U+OZHVpUsXPPDAA3j//fexadMm5Obm4sADD8RZZ52Fvn37tips4uCDD8ZVV12FW265xXX9sssuw3HHHYfs7Gzn2h//+EeUlJS4nps8eTImT57c6nhl3pKSklBeXo4//elPWLFiBcLhMHr06IFjjz0WJ598smvHpaIoiqIoiqIouw7dkaUoiqIoiqIoewi5u0pOWpWVlbl2TCUlJWHMmDEJhf3DDz9g9OjRUZNYkkgkgocffhjHH388Wlpaou5XVFTgyCOPtE5i2VixYgWOP/541NfXx3127dq1OOKII6ImsTi1tbWYPHkyNm/enFD8v2QeeughnHPOOVGTWJLi4mKcdtppmDNnTkLh3nHHHa5JLOK4445DVlZWwukzxkTt8Lv33ntx8cUX49lnn8VHH32EV155BTfccAMGDhyIq666CpFIJOHwOTfccAOGDh3qurZ161Zce+21zv/z5s2LmvTt1KkTHnjggR2KU05kNTc3Y/z48bjvvvvw9ttvY8GCBZgzZw4mT56MIUOGRD2vKIqiKIqiKMquQSeyFEVRFEVRFGUPMXbsWAQCAef/pUuXoqioyPn/vffegzHG+X/EiBHIyMiIG24kEsEZZ5wRNfnj8/nQo0cPdOnSJeqdt956C7feemvU9VtvvRU//PCD61pSUhL69u2LAw44ALm5uVHvrF27Fm+++WbcdN59990oLi4GAGRlZWHgwIFIS0uLeq66uhqPP/543PB+LmRmZmLEiBEYPHhw1L2OHTtixIgRGDFihOvowW+++QZ/+tOfXO0BAFJSUtC/f39kZma6rkciEUyfPj3mJCFB7cTv96Nv377Iy8sDAJx55pmtyteqVatQU1OT0LPNzc24/fbbccYZZ0TlKRGSk5Px73//O2oX4YMPPogvvvgClZWVuOiii6Lee/TRR538tZZFixYl/OyyZcswfvx4fPLJJzsUl6IoiqIoiqIo3uhElqIoiqIoiqLsITIzMzF8+HDnf2OM65tYtmMFE+HFF1/Ep59+6rp25JFHYv369Vi3bh02bNiAJUuWYMiQIa5nbrvtNlRXVzv/Nzc347HHHnM9M2LECKxfvx6rVq3C4sWLUVJSgjvvvDMqDYl+eyspKQn//Oc/UVpaiu+++w6bNm3CscceG/XcrpwQWLBgQdQ3k2w/Xt+o2llGjBiBL7/8EvPmzYu6d8EFF+DLL7/El19+iVmzZjnXZ86ciXA47Pzv9/tx++23o6qqCsuXL0dlZSUeffRR18ROXV1d1PF7XuTk5ODLL7/EqlWrUFJSgrlz5+K4445rVb52ZAfSs88+izvuuKPV7wHA4MGDcdNNN7muRSIRXHjhhbj00kuxadMm171p06bt1BGVrc1fdXU1Tj/9dJSXl+9wnIqiKIqiKIqiRKMTWYqiKIqiKIqyB5GTU++8847zN5/Usj3rxcMPP+z6v3v37nj++efRrVs359rgwYPx4osvIhQKOddqamowd+5c53+fz4fXXnsNDz30EKZPn45DDjkEjz/+uOu7SX6/H3/+85+Rnp7uipPvLIvF7NmzMX36dOd7QtnZ2XjkkUfg97tdk40bNyYU3i+RTZs24dVXX3Vd+/Of/4wZM2YgOTkZwLa6mjp1Km644QbXc88884xrctKLmTNnYtiwYU5Yp59+OlJSUlqVTjnR4/P5cOGFF+Lbb79FQ0MD1q5di2nTpkW999e//jXucYlezJgxI+q4zUWLFuHJJ590XevVq5d1wjVRamtro47X7N27N55++mmUlpaipqYGL774Irp27ep6ZuPGjbj77rt3OF5FURRFURRFUaLRiSxFURR
|
||
|
"text/plain": [
|
||
|
"<Figure size 1800x450 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABrIAAAHACAYAAADuovhVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAABcSAAAXEgFnn9JSAAEAAElEQVR4nOydd5yU1fX/PzO7O7O9w9KLFAHpCIogoGKPBUusiRKsJFFjj0rUmNiiRr+W2EtMTLCHn70XFBUFQaQLqNRlWba32Z37+4PXeTjPmfs8M7O7Lqjn/Xrta2eeuc/t955z7rnPfQLGGANFURRFURRFURRFURRFURRFURRF2c0I7uoMKIqiKIqiKIqiKIqiKIqiKIqiKIoNdWQpiqIoiqIoiqIoiqIoiqIoiqIouyXqyFIURVEURVEURVEURVEURVEURVF2S9SRpSiKoiiKoiiKoiiKoiiKoiiKouyWqCNLURRFURRFURRFURRFURRFURRF2S1RR5aiKIqiKIqiKIqiKIqiKIqiKIqyW6KOLEVRFEVRFEVRFEVRFEVRFEVRFGW3RB1ZiqIoiqIoiqIoiqIoiqIoiqIoym6JOrIURVEURVEURVEURVEURVEURVGU3RJ1ZCmKoiiKoiiKoiiKoiiKoiiKoii7JerIUhRFURRFURRFURRFURRFURRFUXZL1JGlKIqiKIqiKIqiKIqiKIqiKIqi7JaoI0tRFEVRFEVRFEVRFEVRFEVRFEXZLVFHlqIoiqIoiqIoyi6ivr5+V2dBURRFURRFURRlt0YdWYqiKIqiKIryA3DmmWciEAhY/w499FDfexsbG5GZmel5/+OPP94xhfgRsm7dOs96S/Tvvffec8XZp08f1+9TpkyJSdfW3n6UlpZixowZ+Nvf/taOpd91vPfeezjzzDPRr18/ZGZmIj8/H8OHD8fll1+OVatW7erstYnKykrccsstmDhxIjp16oRwOIyePXviqKOOwr/+9S+0tLTs6iwqiqIoiqIoyk8adWQpiqIoiqIoSgczd+5cNDU1ef4+b948fVLnJ0pzczPuvPNODBw4EI8++iii0eiuzlKbqK2txYknnogDDjgATzzxBNasWYP6+npUVlbiq6++wt/+9jcMHToUf/3rX3d1VlvFK6+8gn79+uHKK6/ERx99hLKyMjQ1NWH9+vV46aWX8Ktf/Qpjx47FihUrdnVWFUVRFEVRFOUnizqyFEVRFEVRFKWDqaurw7x58zx/f+eddzowN0pHUVFRgREjRuAPf/gDKisrd3V22kxjYyOmTp2KZ5991jdcU1MTrrnmGlxwwQUdlLP24YUXXsBRRx2Fbdu2+YZbuHAhJk+ejGXLlnVQzhRFURRFURTl50Xqrs6AoiiKoiiKovwcefvttzF58mTP35T2Izs7G3vuuWfC4XNyclzfhw8fjuLiYud7MnFxKioqsHTp0lbduzty5ZVX4pNPPnFdCwaD6NevH8rLy2McQHfffTemTJmC4447riOz2SrWr1+PM844I+aJufz8fHTp0gUrV650/bZlyxacdtppmD9/PlJSUjo6u4qiKIqiKIryk0YdWYqiKIqiKIqyC3j77bfx5z//OeZ6TU0N5s+fvwty9NNlzJgxMe+9SoY5c+a0X2Z+ImzatAn/+Mc/XNfGjBmD5557Dr1790ZLSwtuu+02/PGPf4Qxxglz4YUX4phjjtntnT233norqqurne+BQAB33XUXfv/73wMAVq5ciRNOOAFfffWVE2bhwoV45JFHcM4553R4fhVFURRFURTlp4weLagoiqIoiqIoHUBxcTFSU3fuI/vss89cC+XEBx98gEgk4nzv2rVrh+RPUZJhzpw5aGxsdF37z3/+g969ewMAUlJScMUVV+D88893hVm/fv2P4olDeVziqaee6jixAGDgwIF46aWXkJ6e7gr3+OOPd0T2FEVRFEVRFOVnhTqyFEVRFEVRFKUDyMrKwpgxY5zvzc3NeP/992PCyfdjeR0/6IUxBrNnz8a0adPQo0cPhMNhFBUVOe9mWrRoUULxNDY24pFHHsExxxyDvn37IisrCykpKcjKykLfvn1x5JFH4r777kNDQ4NnHH369EEgEHD+7rnnHgBAbW0t/u///g/jx49HUVERsrKyMGTIEFx22WXYsGFDUuXtCGQ5pkyZktT97733HgKBAPr27Rvz2/XXX+/Ee+aZZ1rvLysrww033IB99tkHxcXFCIfD6N69O6ZOnYq///3vqKqqSir/99xzD+rq6nD55ZejZ8+eCIfD6NKlCw455JCE3/MkjxTs168fBgwYEBPud7/7Xcy1eO/UsqWVmprqKkMgEMBTTz0VE7asrAydOnWKCTt79uyE0/v222+xadMm17XDDjssJlyvXr1w9NFHu67NmzcPGzduTDgtRVEURVEURVHio44sRVEURVEURekgpAPE9mSKvJaM0+Tbb7/FuHHjcPLJJ+PFF1/Ehg0b0NTUhPLycixevBh33nknRo8ejXPPPRdNTU2e8axcuRLDhg3DWWedhTlz5mDdunWoq6tDNBpFXV0d1q1bh1deeQW//e1vMWrUqISdHwCwePFijB49GhdeeCE++eQTlJeXo66uDsuWLcNtt92GPffcE6+++mrC8f3Ueeqpp9C/f3/86U9/wmeffYZt27ahqakJGzduxNtvv42LL74Y/fv3x/PPP59wnE1NTfjFL36Bv/3tb1i/fj2ampqwZcsWfPjhh+jevXtCcWzZssX1vUuXLtZwgwYNcj2JCABffvllwnkFgH333RdXXHFFzPWLL74YlZWVrmu///3vUVZW5rp20kkn4aSTTko4PVk2wLt8w4YNi7mWbPkURVEURVEURfFHHVmKoiiKoiiK0kHIp6uk06q8vNz1xFRqaiomTJiQUNzffvstxo8fj88//9w3XDQaxYMPPoijjjoKLS0tMb9XVFTgkEMOwapVqxJKd/ny5TjqqKNQX18fN+w333yDqVOnYuXKlZ5hamtrcdJJJ8U8EfNz5IEHHsDpp58e46yRbN26FSeeeCKeeOKJhOK97bbb8O6778ZcP/LII5Gbm5tQHPy9VwBcx2HKcIFAwHXt66+/RjQaTSgd4rrrrsPIkSNd17Zs2YKrrrrK+T5nzhz897//dYXp1q0b7rvvvqTSkmUDvMtng783S1EURVEURVGUtqOOLEVRFEVRFEXpICZOnIiUlBTn+5IlS1BaWup8f/fdd12L6GPGjEF2dnbceKPRKE4++eQY508gEECfPn3Qo0ePmHveeOMN3HTTTTHXb7rpJnz77beua6mpqRgwYACGDx+OgoKCmHu++eYbvP7663Hzeeedd2Lr1q0AgNzcXAwZMgSZmZkx4aqrq/Hoo4/Gje/HQk5ODsaMGWN9eqdr164YM2YMxowZ4zp68Msvv8QFF1wQ41RJT0/HoEGDkJOT47oejUYxc+ZMXychQf0kGAxiwIABKCwsBACccsopCZepc+fOru8rV660Oka/++67GCdQXV1dXOecJC0tDf/85z8RCoVc1++//37Mnz8flZWVMe/jAoCHH37YKV+iyLIB8HzqcPXq1THX9GhBRVEURVEURWlf1JGlKIqiKIqiKB1ETk4ORo8e7Xw3xrjeidXaYwVfeOGFmHcWHXLIIVi3bh3Wrl2L77//HosXL8aIESNcYW655RZUV1c735ubm/HII4+4wowZMwbr1q3DypUrsWjRIpSVleH222+PyUOi795KTU3Fvffei23btuHrr7/Gxo0bccQRR8SEmzdvXkLxJcL7778f884k25/XO6raypgxY/D5559jzpw5Mb+dc845+Pzzz/H555/j2muvda7PmjXLdfxjMBjErbfeiqqqKixbtgyVlZV4+OGHXY6duro63HjjjQnlKT8/H59//jlWrlyJsrIyzJ49G0ceeWTCZdp3331d3ysqKvDMM8/EhLv33nut9/N+lyjDhg3Dn//8Z9e1aDSK8847DxdddFGMA+ncc8/F4YcfnnQ6ffv2RUlJievaY489FuOQ27x5M5577rmY+1tTNkVRFEVRFEVRvFFHlqIoiqIoiqJ0INI59dZ
|
||
|
"text/plain": [
|
||
|
"<Figure size 1800x450 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABrIAAAHACAYAAADuovhVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAABcSAAAXEgFnn9JSAAEAAElEQVR4nOy9d5hV1fX//75T7vQ+dKSDgDRBUIqAvcWCJdZEERMVP4nGnqhBY2KLEo0lduPXxMReYm9YsCsKIigqoPQBhul97v79wW8d1ll373PPnRmKuF7PM8/ce+45u++91tpr730ixhgDRVEURVEURVEURVEURVEURVEURdnBSNneCVAURVEURVEURVEURVEURVEURVEUG+rIUhRFURRFURRFURRFURRFURRFUXZI1JGlKIqiKIqiKIqiKIqiKIqiKIqi7JCoI0tRFEVRFEVRFEVRFEVRFEVRFEXZIVFHlqIoiqIoiqIoiqIoiqIoiqIoirJDoo4sRVEURVEURVEURVEURVEURVEUZYdEHVmKoiiKoiiKoiiKoiiKoiiKoijKDok6shRFURRFURRFURRFURRFURRFUZQdEnVkKYqiKIqiKIqiKIqiKIqiKIqiKDsk6shSFEVRFEVRFEVRFEVRFEVRFEVRdkjUkaUoiqIoiqIoiqIoiqIoiqIoiqLskKgjS1EURVEURVEURVEURVEURVEURdkhUUeWoiiKoiiKoiiKoiiKoiiKoiiKskOijixFURRFURRFUZQkqK+v395JUBRFURRFURRF+cmgjixFURRFURRF+f857bTTEIlErH8HHXRQ4LONjY3Izs52Pv/Pf/5z22TiR8jy5cud5Rb278033/SF2adPH9/vU6dOjYvXVt9BlJWVYcaMGfjrX//agbnfcbjmmmt8ZXHllVeGeq60tDSpunrttde2bka2MlpOiqIoiqIoirJtUUeWoiiKoiiKooRg7ty5aGpqcv7+/vvv606dnZSWlhbcfPPNGDRoEO6//37EYrHtnaQOp6ysDLNnz076uR9++AEbN27cCinaMdFyUhRFURRFUZRtT9r2ToCiKIqiKIqi/Bioq6vD+++/jylTplh/f+ONN7ZxipRtQUVFBSZOnIhFixZt76RsNZqbm3HiiSe2ydHy2WefbYUU7ZhoOSmKoiiKoijK9kEdWYqiKIqiKIoSktdff93pyHr99de3cWp2bnJzc7HrrruGvj8vL8/3fcSIESgtLfW+JxMWp6KiYqd2YlVVVeG4445rsyNWOmhKSkrQp0+fwGfy8/PbFNf2RMtJURRFURRFUbYf6shSFEVRFEVRlJC8/vrr+NOf/hR3vaamBh9//PF2SNHOy5gxY+Lee5UMzz77bMclZifl3XffxS9/+UssXbq0zWFIB82ZZ56Jv/zlL+1N2g6FlpOiKIqiKIqibF/0HVmKoiiKoiiK4qC0tBRpaVvWfn300Ueorq6Ou+/tt99Gc3Oz971bt27bJH2K0hYWLlyIX/ziF9h7773b5ZwB4h00w4YNa1d4OxJaToqiKIqiKIqyY6COLEVRFEVRFEVxkJOTgzFjxnjfW1pa8NZbb8XdJ48bcx0/6MIYg0ceeQTTpk1Dz549kZGRgZKSEowcORK/+93vMH/+/FDhNDY24r777sORRx6Jvn37IicnB6mpqcjJyUHfvn1x2GGH4Y477kBDQ4MzjD59+iASiXh/t912GwCgtrYWf//73zF+/HiUlJQgJycHQ4cOxUUXXYRVq1Ylld9tgczH1KlTk3r+zTffRCQSQd++feN+u+qqq7xwTzvtNOvzGzZswNVXX40999wTpaWlyMjIQI8ePbD//vvjb3/7G6qqqpJK/2233Ya6ujpcfPHF2GWXXZCRkYGuXbviwAMPxOLFi0Pnq7KyEsOHD8e//vUvGGO86zk5OaHDIDZu3IgVK1b4rm0NB83PfvYzX1lEIhEMGzbM5zwmrrzyyrh7R44ciaampqTi/DGWk6IoiqIoiqLsrKgjS1EURVEURVECkA4Q27uw5LVknCbff/89xo0bhxNOOAFPP/00Vq1ahaamJpSXl2PBggW4+eabMXr0aJx55pmBk/FLlizB8OHDccYZZ+DZZ5/F8uXLUVdXh1gshrq6OixfvhwvvPACzjnnHOy+++5JOT8WLFiA0aNH49xzz8UHH3yA8vJy1NXVYfHixbjxxhux66674sUXXwwd3s7Oww8/jAEDBuCPf/wjPvroI2zcuBFNTU1YvXo1Xn/9dZx//vkYMGAAnnzyydBhNjU14Wc/+xn++te/YuXKlWhqasK6devwzjvvoEePHqHD4U4ZYsSIEXjuuedCh0HIXUZpaWnYtGkTfvvb3+LAAw/E1KlTcdppp+HRRx9FS0tL0uET9957L0pKSnzXvvzyS8yePdt3beHChbjmmmt816LRKB566CFEo9Gk4vwxlpOiKIqiKIqi7KyoI0tRFEVRFEVRApC7q6TTqry83LdjKi0tDRMnTgwV9vfff4/x48fjk08+CbwvFovh7rvvxuGHH47W1ta43ysqKnDggQfim2++CRXvV199hcMPPxz19fUJ7/3uu++w//77Y8mSJc57amtrcfzxx2PNmjWh4t+Zueuuu3DKKaegsrIy8L7169fjuOOOw4MPPhgq3BtvvBFz5syJu37YYYchPz+/TWmNRqP4wx/+gI8++gh9+vRJ+nnpoGlpacGUKVNw66234tVXX8Vbb72FBx98EMcffzxGjhwZd39Yunbtin/84x9x1//0pz/h+++/BwC0trbi9NNPj9ulddVVV2HEiBFtipf4sZSToiiKoiiKouysqCNLURRFURRFUQKYNGkSUlNTve8LFy5EWVmZ933OnDm+3RtjxoxBbm5uwnBjsRhOOOGEOOdPJBJBnz590LNnz7hnXnnlFVx77bVx16+99lpvQp9IS0vDwIEDMWLECBQVFcU989133+Hll19OmM6bb74Z69evBwDk5+dj6NChyM7Ojruvuroa999/f8Lwfizk5eVhzJgxGD58eNxv3bp1w5gxYzBmzBjf0YOff/45fvvb38bt5snMzMTgwYORl5fnux6LxTBz5sxAJyFB7SQlJQUDBw5EcXExAODEE09MOm/5+fmYOXMmvvnmG/zlL39BRkZG0mEAwLx580Lfu2jRIkyZMgXvv/9+m+I67rjj4vJaV1eH3/zmNwCA2bNn4+OPP/b9PmHCBFx00UVtig/4cZaToiiKoiiKouyMqCNLURRFURRFUQLIy8vD6NGjve/GGN87sdp6rOBTTz2FDz74wHftwAMPxPLly7Fs2TKsWLECCxYswMiRI333XH/99aiurva+t7S04L777vPdM2bMGCxfvhxLlizB/PnzsWHDBtx0001xaQj77q20tDTcfvvt2LhxI7788kusXr0ahx56aNx9HTn5/tZbb8W968j253pHVXsZM2YMPvnkEzz77LNxv/3617/GJ598gk8++QSzZs3yrl9xxRW+4x9TUlJwww03oKqqCosXL0ZlZSXuvfde3zF3dXV1ccfhuSgsLMQnn3yCJUuWYMOGDXjkkUdw2GGHJZWvvLw8rFmzBrfffjt69eqV1LOSZHcOVVdX4+c//zk2bdrUpvhuv/12dO/e3Xftf//7H/7617/66gHY/C6rBx980OeEToYfczkpiqIoiqIoys6GOrIURVEURVEUJQHSOfXaa695n7lTy3avi7vvvtv3vXfv3njiiSd8k+bDhw/HU0895dsJUlNTg0ceecT7HolE8MILL+Cuu+7CzJkzMWHCBNx///2+9yalpKTgd7/7HXJycnxx8p1lQVx33XWYOXMm0tLSAAAFBQW45557kJLiNydWrlwZKrydkdWrV+P555/3Xfvd736Hiy66COnp6QA219WMGTNw5ZVX+u579NFHfc5JF1dccQV23313L6yf//znyMzMTCqdqamp1h11yVJbWxt3lGX//v3x3//+Fxs3bkRNTQ2eeuop7LLLLr57Vq5ciZtvvrlNcRYVFcU5bQHg4osvjjsm88Ybb8SAAQPaFA/w4y4nRVEURVEURdnZUEeWoiiKoiiKoiT
|
||
|
"text/plain": [
|
||
|
"<Figure size 1800x450 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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vnDhQixcuBAPPvggnn/+eRx66KGBwtvZefrppzFt2jSUl5e7jq9ZswZr1qzB7Nmzceutt+Khhx7CscceGyjMhoYGHHHEEZgzZ45zbP369fjoo49QXFwcKIw99tgD7777rpOONWvWYOjQodZrbU6itLQ013+5yig5ORmbN2/GH/7wByxatAgNDQ3o3bs3DjvsMBx77LGu1Y2J8Nhjj2HIkCHYtGmTc+yHH37A9OnTcdVVVznHvv/+e9xyyy2ueyORCJ566inPdmNjRy0nRVEURVEURdlZ0RGyoiiKoiiKovgwfvx43H777c5/6bQqLS11rZhKTk7GmDFjAoX9888/Y/To0Vi7dq3vddFoFI888ojjiEpKSnKdLysrw0EHHYSff/45ULyLFi3CkUceie+++w7p6em+1/7000/485//jI0bN3peU11djRNPPBGLFy/+1W+r+PDDD+OCCy6IWdEj2bhxI0444QQ88cQTOOOMM+KGe+edd1rryeGHH46cnJxAacvPz8fEiRMDXfvxxx+7/ufm5iI3N9d1TDpompqaYlYjfvDBB5gxYwYGDx6Mf/3rXzFb8QWha9euePDBB/Hb3/7WdfzPf/4zTjrpJPTq1QvNzc0466yzYhxLN910E4YNG5ZQfDtqOSmKoiiKoijKzopuLagoiqIoiqIoPowdO9blOPr++++xYcMG5/+cOXNcTosRI0YgKysrbrjRaBQnnXRSjHMiFAqhd+/e6NGjR8w9b7/9Nm699daY47feemuMEys5ORn9+/fHsGHDkJ+fH3PPTz/9hLfeeituOu+55x7HiZWTk4PBgwcjIyMj5rrKyko88cQTccPbUcjOzsaIESOsK3G6deuGESNGYMSIEa6tB7/55hv84Q9/iHFipaWlYeDAgcjOznYdj0ajmDZtWsxKNxtUT8LhMPr374+CggIAwMknn5xw3uIxc+ZMfPfdd65jBx54YMx18+bNCxzmggULMH78eHz66actStMJJ5wQk9eamhr8/ve/BwBMnz4dX3zxhev8vvvuiyuuuKJF8QWhI5aToiiKoiiKouyMqCNLURRFURRFUXzIzs7Gnnvu6fw3xrjeiWXbVjAIL7/8Mv73v/+5jh100EFYsWIFli9fjpUrV2L+/PkYPny465rbb78dlZWVzv+mpiY8/vjjrmtGjBiBFStWYMmSJfj2229RUlKCu+66KyYNQd+9lZycjH/84x/YtGkTfvjhB6xZswaHHXZYzHVtaXz/4IMPYt51ZPt4vaOqtYwYMQJffvklZs6cGXPu3HPPxZdffokvv/wSN9xwg3P8+uuvd72LKRwO44477kBFRQUWLlyI8vJyPPbYY65t7mpqamK2w/MiLy8PX375JZYsWYKSkhI8++yzOPzww1uRy1h+/vlnnHfeeTHHzznnnJhjcqVRPCorK/Hb3/4WmzdvblHa/vGPf6B79+6uY//973/xt7/9zfUcgC3vt5sxY0bM6sW2oiOXk6IoiqIoiqLsbKgjS1EURVEURVHiIJ1T7777rvObO7Vs13rxyCOPuP736tULL774Inr27OkcGzp0KF5++WWkpqY6x6qqqvDss886/0OhEGbNmoWHH34Y06ZNw7777osnnnjC9d6kcDiMSy65BJmZma44+coyP2677TZMmzbNeXdPbm4uHn30UYT
|
||
|
"text/plain": [
|
||
|
"<Figure size 1800x450 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABrIAAAHACAYAAADuovhVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAABcSAAAXEgFnn9JSAAEAAElEQVR4nOy9d3hdxfH//77qvduSLePeccPGDo4B02J6CxAgNFNCwECopoaehJJAICRU5wOE8A29JaGDgZiODRg33LtsWb1LV7r7+8O/OZ4zd/fcK7li5vU8eiSds2d3ts7M7p49IWOMgaIoiqIoiqIoiqIoiqIoiqIoiqLsYiTsbAEURVEURVEURVEURVEURVEURVEUxYYuZCmKoiiKoiiKoiiKoiiKoiiKoii7JLqQpSiKoiiKoiiKoiiKoiiKoiiKouyS6EKWoiiKoiiKoiiKoiiKoiiKoiiKskuiC1mKoiiKoiiKoiiKoiiKoiiKoijKLokuZCmKoiiKoiiKoiiKoiiKoiiKoii7JLqQpSiKoiiKoiiKoiiKoiiKoiiKouyS6EKWoiiKoiiKoiiKoiiKoiiKoiiKskuiC1mKoiiKoiiKoiiKoiiKoiiKoijKLokuZCmKoiiKoiiKoiiKoiiKoiiKoii7JLqQpSiKoiiKoiiKoiiKoiiKoiiKouyS6EKWoiiKoiiKoiiKoiiKoiiKoiiKskuiC1mKoiiKoiiKoiiKoiiKoiiKoijKLokuZCmKoiiKoiiKovzA6OjoQDgc3tliKIqiKIqiKIqibHd0IUtRFEVRFEVRHEydOhWhUMj6c+ihhwY+29raioyMDOfzTzzxxI7JRAxWrlwZJdstt9wSFU6GmTp16g6XdXtzyy23OOsrnp++ffv64vvggw/iqvfOlu2HH36IvfbaC+vWrdt2md9JjBs3rlNlPGPGjJ0tctz8+9//7lTeevXqtbNFVhRFURRFUZRdEl3IUhRFURRFUZQuMGvWLLS1tTnvf/rpp2hubt6BEim7O2vWrMEpp5yCAw44AN99993OFmerCYfDmD9//s4WY7vx9ddf72wRFEVRFEVRFGW3QBeyFEVRFEVRFKULNDU14dNPP3Xef//993egNMruziuvvIKhQ4fi2Wef3dmibDMWLFiA1tbWnS3GdkMXshRFURRFURRl25C0swVQFEVRFEVRlB8q7733HiZPnuy8tzsxbtw43//9+vXbSZLsWPr27YvCwsK4wvbs2dP3f3Z2dlS5FRUVdUmOb775Bk1NTV16dldFLvRkZ2dj8ODBgc9069Zte4q0TZH5GzJkCLKyspzhi4uLt7dIiqIoiqIoivKDRBeyFEVRFEVRFKWLvPfee7jtttuirjc0NODLL7/cCRJtP7766qudLcJO4eabb+7y98DGjRv3oy23eJALPUcffTSefvrpnSTNtqW6uhqrVq3yXfv3v/+NQYMG7SSJFEVRFEVRFOWHix4tqCiKoiiKoihxUlRUhKSkLXvBvvjiC9TX10eF++ijjxAOh73/e/TosUPkU5QfEnIha8SIETtJkm2PzFt6ejoGDBiwk6RRFEVRFEVRlB82upClKIqiKIqiKHGSmZnpOyquvb0dH374YVQ4+X0s1/GDLowxePbZZ3H88cejV69eSE1NRWFhIUaPHo3LL78c3377bdxxLV68GBdffDGGDBmCjIwMFBYW4uCDD8YzzzzTKZlCoZDvJ+gtpRUrVuC3v/0tJk2ahO7duyM1NRXJycnIz8/HqFGjcM4551jLjfjggw+i0mtoaAAALFy4EBdffDEGDx6MjIwMdOvWDQcddBBmzJiBjo6OTuVpe2PLxxNPPNGpOKZOnYpQKIRbb7016l6/fv28eD/44APr85988gnOO+88DBw4EJmZmcjOzsagQYNw1lln4b///W+n5W9oaMDcuXNx5JFHIjc3F5mZmRg4cCCmTZvWqXwZY6La8fZYyLroooui8lBcXIyampqosE888URU2NLSUlRVVXU6XbmQNWzYMCQkqPutKIqiKIqiKF1BjxZUFEVRFEVRlE5wwAEH4PPPP/f+f++993DUUUf5wsjvYx1wwAFxLxytWrUKJ554YtSRdFVVVaiqqsLcuXPxl7/8Beeddx4eeOABpKSkOOO69957ce211/reDmtubsb777+P999/H//85z9x9913xyVXvDz88MO47LLL0NraGnWvpqYGNTU1+O677/D444/j7LPPxmOPPYbExMS44v7LX/6C6dOno62tzbvW3NyMmTNnYubMmXjkkUfw5ptvxv1Nq92ZlpYWnH/++Xjqqaei7i1duhRLly7FP/7xD+y333545plnor7v5WLOnDk46qijfG8iLlu2DLW1tZ2Sb9myZairq/NdM8bg6quvxrx589DQ0IBevXphypQp+MUvfoGMjIxOxU/88Y9/xDvvvIMlS5Z418rLy3HdddfhoYce8q5t2LABV1xxRdTzM2bMQEFBQafTlQtZ/fv3x1NPPYU333wTq1evRnZ2NkaNGoVTTjkFY8aM6XT8iqIoiqIoivJjQreEKYqiKIqiKEonkG9XyUWrqqoq35smSUlJmDRpUlxxr1q1ChMnToz5XaVIJIJHH30URx99tPMtpHvuuQdXXnmlbxFL8t///hennnpqXLLFw8svv4wLL7zQuohl4/HHH8dNN90UV9gHHngAl156qW8RS/LVV1/hggsuiCu+3ZlwOIzDDjvMuogl+d///oeJEydi3bp1ccV9yimnWI/T7Gw7kgs9AHDsscfij3/8I9544w3873//w7/+9S+cffbZGDp0KN59991OxU9kZGTgySefjFosffTRR30L0tOmTUN1dbUvzK9//WscfvjhXUpX5u+FF17AmWeeif/3//4fZs2ahTfeeAN33XUXxo4di7PPPhvNzc1dSkdRFEVRFEVRfgzoQpaiKIqiKIqidIJ9993XNyk+b948lJeXe//PnDkTxhjv/3HjxiErKytmvJFIBKeccgrKysp810OhEPr27YtevXpFPfP222/jjjvuiLo+f/58XHfdddZ0+vXr5zvmbO7cuTFli4e2tjZceumlUddzc3MxcuRIDBkyBMnJyVH3H3roIV95ubj++uu9v3v16oVBgwZZw7344otYu3ZtJyTftenXrx/GjRtn/c7ayJEjMW7cOIwbNw7Z2dne9RtuuMF6dGO3bt0waNCgqEWd1atXBx4VyaH2mZWVhaFDhyIlJQUFBQU49NBDO5GrzW92xcuaNWtwxBFH4OWXX+5UGsTEiRNx9dVX+65FIhFccMEF6OjowPPPPx8V94ABA3DPPfd0Kb2mpiZ8//33cYU1xuCJJ57AlClT4l4AVhRFURRFUZQfG7qQpSiKoiiKoiidIDs7G2PHjvX+N8b4vollO1YwHl5++WV89tlnvmtTpkzBypUrsWLFCqxZswZz587F6NGjfWHuuuuuqDdk7r333qg3sYYMGYLZs2dj+fLlWLBgAVatWoVDDjkkLtni4b///S/WrFnju3bjjTeivLwcc+fOxaJFi1BeXo59993XF6a6uhqrV6+OK41hw4bhq6++wpo1a7B48WJ89tlnUce+GWOiynFrOPvss6O+m2T7cX2jamu5+eab8dVXX+H888+Puvfaa6/hq6++wldffeV9u62srAz333+/L9yAAQMwa9YslJeXY/HixdiwYQN+8Ytf+MK8++67cefhqKOOwvr167Fw4UKUlZXh8ccfty5SBmF7IyuIcDiMs846C8uXL+/Uc8Qtt9yCUaNG+a598803uPXWW3HxxRf7rickJODJJ59EZmZml9KaO3dup7/XNmvWLOvRhoqiKIqiKIqi6EKWoiiKoiiKonQauTjFjz3ji1q2sC4effRR3/99+vTBiy++iN69e3vXRo4ciZdffhmpqanetYaGBjz77LPe/8YYvPjii764MjMz8dZbb/kW4Hr16oXXXnsN/fv3j0u+WEyePBlvvPEG7rjjDpxyyik4/vjjcdttt/m+4ZWXl4dLLrkk6ln+RpuLtLQ0vP32296CDQD85Cc/wfTp06PC7k5vZHWWJ554wnf8YkJCAl5
|
||
|
"text/plain": [
|
||
|
"<Figure size 1800x450 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABrIAAAHACAYAAADuovhVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAABcSAAAXEgFnn9JSAAEAAElEQVR4nOydd5gVRfb3v3dm7p2cM0MakoAkQVhYUFDM2VVfMYJZEVZFMa5iWNPu6uqa06rr7m/Ngd01KwbMgkqWODCEmWFyjrfeP3hOc7pudd++M0MQz+d5eJjbXV11Kp46dbqqfUopBUEQBEEQBEEQBEEQBEEQBEEQBEHYy4ja0wIIgiAIgiAIgiAIgiAIgiAIgiAIgglxZAmCIAiCIAiCIAiCIAiCIAiCIAh7JeLIEgRBEARBEARBEARBEARBEARBEPZKxJElCIIgCIIgCIIgCIIgCIIgCIIg7JWII0sQBEEQBEEQBEEQBEEQBEEQBEHYKxFHliAIgiAIgiAIgiAIgiAIgiAIgrBXIo4sQRAEQRAEQRAEQRAEQRAEQRAEYa9EHFmCIAiCIAiCIAiCIAiCIAiCIAjCXok4sgRBEARBEARBEARBEARBEARBEIS9EnFkCYIgCIIgCIIgCIIgCIIgCIIgCHsl4sgSBEEQBEEQBEEQBEEQBEEQBEEQ9krEkSUIgiAIgiAIgiAIgiAIgiAIgiDslYgjSxAEQRAEQRAEQRAEQRAEQRAEQdgrEUeWIAiCIAiCIAjCL4yOjg60tbXtaTEEQRAEQRAEQRB2OeLIEgRBEARBEAQHZsyYAZ/PZ/x35JFHuj7b0tKChIQEx+efe+653ZOJMBQVFYXIduutt4aE08PMmDFjt8u6q7n11lsd68vLv759+9ri++STTzzVe6Rl++mnn+KAAw7Ali1bui/ze4jm5mY88sgjOPzww5GXl4fY2Fj06NEDhx12GB577DE0NzfvaRG7xA8//IDLLrsMgwcPRnJyMpKTkzFkyBDMmjULixcv3tPiCYIgCIIgCMIvgpg9LYAgCIIgCIIg/BJZuHAhWltbEQgEjPe/+uorNDU17WaphH2Z4uJizJ07Fy+99NKeFqVb+Pbbb3Haaadh06ZNtuvbtm3Dtm3b8NFHH+G+++7DP//5T4wfP34PSdk52tvbceWVV+LRRx+FUsp2b9WqVVi1ahUee+wxzJw5E3/9618REyOmuSAIgiAIgiA4ITuyBEEQBEEQBKETNDY24quvvnK8//HHH+9GaYR9nTfffBODBw/eZ5xY33zzDaZMmRLixNJZt24dDjvsMHz22We7SbKuo5TC6aefjkceeSTEicUJBoN4+OGHcdppp6Gjo2M3SigIgiAIgiAIvyzktS9BEARBEARB6CQfffQRJk+e7HhvX2LMmDG234WFhXtIkt1L3759kZmZ6Slsjx49bL+Tk5NDyi0rK6tTcvz4449obGzs1LN7G42NjTjllFNCdiwmJSWhd+/eWLNmje37Xw0NDTjzzDOxYsUKpKSk7G5xI+Zvf/sbXn/99ZDrhYWFaGpqQklJie36m2++iQcffBBz5szZXSIKgiAIgiAIwi8KcWQJgiAIgiAIQif56KOPcPvtt4dcr6+vx3fffbcHJNp1fP/993tahD3CvHnzOv09sDFjxvxqy82Nxx9/POT7Xtdffz3uuOMOxMTEYNu2bTjzzDPxySefWPe3bNmCe+65B3fdddduljYympubQ2Ts168f3njjDYwYMQJKKbzwwgu46KKL0NraaoW55ZZbcN555yE9PX13iywIgiAIgiAIez1ytKAgCIIgCIIgeCQrK8v2LZtvv/0WdXV1IeE+++wz246S/Pz83SKfIPwSeOWVV2y/J06ciLvvvtvqW/n5+XjrrbdC+s0//vEPBIPB3SZnZ/j0009RVlZmu/bEE09gxIgRAACfz4dzzz0Xf/zjH21hGhoaQspFEARBEARBEIQdiCNLEARBEARBEDySmJhoOyquvb0dn376aUg4/ftYTscPOqGUwksvvYSTTz4ZPXv2RGxsLDIzMzFy5EhcddVV+OmnnzzHtXr1asyaNQv77bcfEhISkJmZialTp+LFF1+MSCafz2f757ZLacOGDfjDH/6AiRMnIicnB7GxsfD7/UhPT8eIESNw/vnnG8uN+OSTT0LSq6+vBwCsXLkSs2bNwqBBg5CQkIDs7GwceuihePrpp/e67wyZ8vHcc89FFMeMGTPg8/lw2223hdwrLCy04uW7lzhffvklLrzwQgwYMACJiYlITk7GwIEDMX36dPzvf/+LWP76+nosWbIExx57LFJTU5GYmIgBAwZg5syZnvLT0dERskvtqKOOCgmXkpKCc845x3Zty5Yt+Prrrz2lQ1x++eUhecjNzUV1dXVI2Oeeey4kbEFBASorKz2np8sXGxuLQw45JCTcpZdeiujoaNu1V1991XM6giAIgiAIgvBrQhxZgiAIgiAIghABU6ZMsf02fQtLv6Y/48bGjRsxbtw4TJs2DW+++Sa2bNmC1tZWVFZWYsmSJXjggQcwevRoXHLJJbajyUzcf//9GDZsGB555BGsXr0aTU1NqKysxMcff4wzzjgDxx13XLd/d+nxxx/HkCFDcOedd+LLL7/E9u3b0draivb2dlRXV2Pp0qV49tlnMWXKFJx//vkROZ/+9re/YdSoUXjkkUewZs0aNDU1oby8HAsWLMBFF12E8ePHo6Kiolvz80ulubkZ5557LiZOnIhnnnkG69atQ2NjI+rr67F27Vr84x//wHHHHYeDDz4YW7du9Rzv4sWLMWnSJLz99tuora1FY2Mj1q1bh5qaGk/PV1RUoL293XYtLy/PGHb48OEh13788UfPsgLAn//8ZwwcONB2raysDDfccIPtWklJifEbVU8//TQyMjI8p1daWmr7nZWVFeKwAnZ8P61v3762a5HmTRAEQRAEQRB+LYgjSxAEQRAEQRAiQN9dpTutKisrbTumYmJiMHHiRE9xb9y4ERMmTAj7XaVgMIgnn3wSxx9/vKMj6L777sPVV19tO+JQ53//+x/OOOMMT7J54Y033sBll12GlpYWT+GfffZZ3HLLLZ7CPvTQQ7jiiitcnXfff/89Lr30Uk/x7cu0tbXhqKOOwgsvvBA27Oeff44JEyaEfLPKiWnTphmP0/TajpRSIdfc2qjO0qVLPYcFgISEBDz//PMhzqQnn3wS33zzjfV75syZqKqqsoW55JJLcPTRR0eUnp6/SPK2ffv2EEeYIAiCIAiCIAjiyBIEQRAEQRCEiJg0aZJtUXzZsmW2b+IsWLDAtpg9ZswYJCUlhY03GAxi2rRp2LZtm+26z+dD37590bNnz5Bn3n//fdx9990h15cvXx6y44QoLCzEkCFDEBW1wxRYsmRJWNm80NraiiuuuCLkempqKoYPH4799tsPfr8/5P5jjz1mdG7o3HjjjdbfPXv2DNllQ7z22mvYvHlzBJLv3RQWFmLMmDHG76wNHz4cY8aMwZgxY5CcnGxdv+mmm4xHN2ZnZ2PgwIEhTp1Nmza5HhXJofaZlJSEwYMHIxAIICMjA0ceeaSn5zMzM0PSX7lypTHs2rVrQ65FsnuMmDBhAq699lrbtWAwiEsvvRQdHR145ZVX8MYbb9ju9+/fH/fdd1/EaeXk5Nh+l5WVGXcJtrW1YePGjSHXO5M/QRAEQRAEQdjXEUeWIAiCIAiCIERAcnIyRo8ebf1WStm+idXZYwXfeOONkO/rHHHEESgqKsKGDRtQXFyMJUuWYOTIkbYw9957b8gOmfvvvz9kJ8h+++2HRYsWYf369VixYgU2btyIww47zJNsXvjf//6H4uJi27Wbb74ZZWVlWLJkCVatWoWysjJMmjTJFqaqqgqbNm3ylMaQIUPw/fffo7i4GKtXr8bXX38dcuybUiri7yi5cd5554V8N8n0z+kbVV1l3rx5+P7773HxxReH3Js/fz6+//57fP/999a327Zt24YHH3zQFq5///5YuHAhysrKsHr1apSUlOD//b//Zwvz4Ycfes7Dcccdh61bt2LlypXYtm0bnn32WaOT0kRMTIztO3M
|
||
|
"text/plain": [
|
||
|
"<Figure size 1800x450 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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
|
||
|
"text/plain": [
|
||
|
"<Figure size 1800x450 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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
|
||
|
"text/plain": [
|
||
|
"<Figure size 1800x450 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABrIAAAHACAYAAADuovhVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAABcSAAAXEgFnn9JSAAEAAElEQVR4nOydd3yUVfb/PzNJZtITUmnSQZoiICJNZBV7A8W1YHdtix1cbIu9rr13Xd1dO6tfFbvoqggWkKqAgPSEJKRMyqTM/f3B71zOc+ZOCh0879crryQzz3P7PeVWnzHGQFEURVEURVEURVEURVEURVEURVF2Mfw7OwGKoiiKoiiKoiiKoiiKoiiKoiiK4kInshRFURRFURRFURRFURRFURRFUZRdEp3IUhRFURRFURRFURRFURRFURRFUXZJdCJLURRFURRFURRFURRFURRFURRF2SXRiSxFURRFURRFURRFURRFURRFURRll0QnshRFURRFURRFURRFURRFURRFUZRdEp3IUhRFURRFURRFURRFURRFURRFUXZJdCJLURRFURRFURRFURRFURRFURRF2SXRiSxFURRFURRFURRFURRFURRFURRll0QnshRFURRFURRFURRFURRFURRFUZRdEp3IUhRFURRFURRFURRFURRFURRFUXZJdCJLURRFURRFURRFURRFURRFURRF2SXRiSxFURRFURRFURRFURRFURRFURRll0QnshRFURRFURRFUf6gVFdX7+wkKIqiKIqiKIqiNIpOZCmKoiiKoih/GJYsWYLbb78dRxxxBDp37ozU1FTEx8cjPT0dHTt2xGGHHYZrr70W33///c5O6h7JwQcfDJ/PZ386deq0s5O0zZk+fbonj1vys2LFCk+Y8vuzzz47Kt6Wlu3y5ctxwgkn4PXXX992md9JXH311S0q3/Hjx+/sJDeb8vJy+P3+FuVv6dKlOzvZiqIoiqIoirJNid/ZCVAURVEURVGU7c3vv/+Oq6++Gm+//TaMMVHfV1RUoKKiAitXrsQnn3yCu+66C0OHDsVDDz2E/ffffyekWFG2D1VVVbjzzjvxj3/8AzU1NTjhhBN2dpK2mtmzZ+/sJGw35syZ45RZiqIoiqIoivJHQieyFEVRFEVRlD2ad955B2eccQYqKipa9N63336L4cOH44UXXsCpp566nVKnKDuO3377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
|
||
|
"text/plain": [
|
||
|
"<Figure size 1800x450 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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bCyCwSCaNWuGwYMHY9q0aViyZEnYMI488khXusMdt1dcXIx//OMfOPbYY3HIIYcgPj7eSXvnzp0xbtw4vPzyy9ZjIwlZTu+//z4AIDc3F3feeSf69u2LlJQUJCcno2/fvrj11luRn59fb1nsbWQ+zj///Aa9/+KLL8Ln82HUqFEh9y644IJ629G6deswffp0HHbYYUhLS0NcXBzatGmDE088EU8//TQqKysblP73338fubm5uPjii9G8eXMEg0FkZ2fjpJNOwrZt2yLK0w8//OD6f8iQIUhJSQl5bsqUKSHX3nrrrYjiIN58882QPPj9fnz33Xchz/7222+IjY11PRsVFdWgXWDz58937QoFgGOPPTbkuUGDBmHQoEGua++++65rJ5eiKIqiKIqiHAzo0YKKoiiKoijKQcdzzz0Xcu2GG24I2YXlxfTp09G7d2/06dMHvXr1QmJiouez7777Ls455xwUFxeH3CsqKkJRURF+/fVX/Pvf/8bxxx+P119/PWx4TcWaNWtwyimnYNGiRSH3SkpKUFJSgt9//x3/+c9/cNddd+Hdd99F9+7drWHdc889+Pvf/x4yuA4AOTk5yMnJwY8//ogHH3wQ1113He666y74fL5Gp33OnDkYO3asdVKjpKQEq1atwqpVqzBr1iw89thjmDVrFlq2bBlR2LNnz8bZZ5+NLVu2uK7//PPP+Pnnn/HYY4/ho48+Cvku1R+VBx54ADfeeCMqKipc1+l7W++//z7uuusuvPzyyxgxYkREYRYUFGDkyJFYunSpc23z5s3w+/3IysqKKAzZNlq0aGF9rlevXiHXfv7554jiIMaPH4+zzz4b//rXv5xrxhhccsklWLhwIaKjd7rVdXV1mDRpUsjE3rXXXouhQ4dGHJ+t3YfL39y5c53/y8rKsGLFCs++rCiKoiiKoigHIrojS1EURVEURTmoqK2txSeffOK65vf7MXHixIjDaNOmDS655BIMGTIk7KTT3LlzMX78eOsklo0PP/wQkydPjjgdjaW0tBRjxoyxTmLZWLVqFUaPHm0dQH/yySdx/fXXWyexJHV1dbjnnntwxx13NDjNxJo1a3DcccdFvDPnxx9/dB25Vt+zf/7zn0MmsTg7duzAuHHjUF5eHlGYBzM33HADrrnmmpBJLMm6deswZswYfPbZZxGFe91117kmsYgzzjgj4glQY4zr/0jaJ7F48eKInyUeffRRZGdnu64tWbIEDz74oOsZuUurd+/euO222xoUl8wbsOfzpyiKoiiKoij7MzqRpSiKoiiKohxUrFixAiUlJa5rPXr0sB47trtcfvnlIQPMCQkJ6NGjB7p164a4uLiQd1577TXk5eU1eVo4Tz/9NH7//XfXNb/fjw4dOqBPnz5o3bp1yDtbtmzBjBkzXNdqampw8803hzybkpKCXr16oVu3boiPjw+5f8cdd2D9+vWNSvv06dNRWFjouhYMBtGtWzf07NnTOrH43XffRbTL5o477kBZWRkAICMjA927d0cgEAh5bv369XjnnXcalf79kczMTPTv3x9dunQJudeuXTv0798f/fv3R6tWrZzrH3zwAe6+++6Q5xMTE9G1a9eQtl1ZWYlzzjkHOTk59aaHJhJjYmJw6KGHIikpCQBw1llnRZwnuXNr+fLl1udWrVoVci3cMaF
|
||
|
"text/plain": [
|
||
|
"<Figure size 1800x450 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABrIAAAHACAYAAADuovhVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAABcSAAAXEgFnn9JSAAEAAElEQVR4nOy9d5hURfb//+6enu7JAzNDRjJIRkAki6yiYgbFiNk1La6i6IJhUdeE+9E1J4yru2tm9atiTqsiGJCsgCCSw8DkPF2/P/idy7mn697uGQYY9LyeZ56ZuaFy1TmnTlXdgDHGQFEURVEURVEURVEURVEURVEURVEaGcF9nQBFURRFURRFURRFURRFURRFURRFsaGOLEVRFEVRFEVRFEVRFEVRFEVRFKVRoo4sRVEURVEURVEURVEURVEURVEUpVGijixFURRFURRFURRFURRFURRFURSlUaKOLEVRFEVRFEVRFEVRFEVRFEVRFKVRoo4sRVEURVEURVEURVEURVEURVEUpVGijixFURRFURRFURRFURRFURRFURSlUaKOLEVRFEVRFEVRFEVRFEVRFEVRFKVRoo4sRVEURVEURVEURVEURVEURVEUpVGijixFURRFURRFURRFURRFURRFURSlUaKOLEVRFEVRFEVRFEVRFEVRFEVRFKVRoo4sRVEURVEURVEURVEURVEURVEUpVGijixFURRFURRFURRFURRFURRFURSlUaKOLEVRFEVRFEVRlP2M8vLyfZ0ERVEURVEURVGUvYI6shRFURRFUZRGz4oVK3D77bfj6KOPRseOHZGRkYFQKISsrCy0b98eRx55JKZNm4ZvvvlmXyf1N8lhhx2GQCDg/HTo0GFfJ6nB+fTTT115rM/PL7/84gpT3j/vvPNi4q1r2a5evRonnXQSXn755YbLfCPi4osvdpXHs88+G/edoqIiBIPBOtXVypUr93xm9iBaToqiKIqiKMrvidC+ToCiKIqiKIqieLFmzRpcc801eP3112GMiblfXFyM4uJi/Prrr/jggw9w1113YdiwYbj//vtx8MEH74MUK8qeoaysDHfeeSf+7//+DxUVFTjppJP2dZIanGXLluG5556r83s//PCDdXz4raLlpCiKoiiKovzeUEeWoiiKoiiK0ih54403cPbZZ6O4uLhO73311VcYMWIEnnnmGZxxxhl7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
|
||
|
"text/plain": [
|
||
|
"<Figure size 1800x450 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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FrYdbdq0CbfeeisOP/xwZGZmIjExER06dMBpp52GF154AbW1tRGlf9asWSgsLMSVV16J3NxcxMfHIy8vD6effjry8/M95emnn34KuXbCCSeEXEtMTMQRRxxhu7Z169aQ+5YvXx5yvF7v3r09pcUr9fX1GDBgQEh5nHjiicb7L7300pB7x44dG1GcB2M5CYIgCIIgCMK+Qo4WFARBEARBEFoML7/8csi122+/PWQXlhO33nor+vXrh/79+6Nv375ISUlxvPeDDz7AxRdfjPLy8pDfysrKUFZWhtWrV+Pf//43Tj75ZLz11luu4TUXGzZswJlnnomlS5eG/FZRUYGKigr8+uuv+M9//oP7778fH3zwAXr16mUM68EHH8Sf//znEAM2ABQUFKCgoADz58/HY489hltuuQX3338/fD5f1GmfN28exo0bZ3RqVFRUYN26dVi3bh1mzpyJp59+GjNnzgz7jh5izpw5uOCCC7Bjxw7b9Z9++gk//fQTnn76acyePTvkvVS/Vx599FHccccdqKmpsV2n923NmjUL999/P15//XWMHDnSU5glJSUYNWoUVqxYYV3bvn07/H4/Wrdu7SmMk08+GZ9++im2b99ufZzeHaa3W9P7mvTj8tq3b4/58+fj3Xffxdq1a+Hz+dC1a1ecccYZGDt2bFTtOy4uDq+//jqOOOIIm/Pvs88+w1tvvYVzzz3Xuvbpp59ixowZtuczMzONY5sbB2M5CYIgCIIgCMK+QhxZgiAIgiAIQougsbERn376qe2a3+/HRRdd5DmMDh064Kqrrgp734IFCzBhwgSjg8fExx9/jMmTJ+Of//yn57REQ2VlJcaMGYNff/3V0/3r1q3D8ccfjyVLliA3N9f223PPPYfbbrvNUzjBYBAPPvggkpKScNddd0WcbmCPA27s2LEoLS31dP/8+fMxYcIEzJ0719O9jz76KKqqqhzv2b17N8aPH4/Vq1cjMTHRc7p/i9x+++144IEHwt63adMmjBkzBv/9738xZsyYsPffcsstIY5EADj33HM9Oz7atGmDNm3ahL2vtrYWixYtsl3r2LFjyH26g2br1q0hO5e++uorvPDCCxg6dCj+9a9/ue4odKJPnz74y1/+gj/96U+26zfccAPGjh2LtLQ0VFRU4Morrwx59plnnkG7du0iiu9gLSdBEARBEARB2BfI0YKCIAiCIAhCi2DNmjWoqKiwXevduzfS09ObPa5rr702xImVnJyM3r17o2fPnkZHyJtvvomioqJmTwvnhRdeCHFi+f1+HHrooejfvz/at28f8syOHTswbdo027WGhgajQyo9PR19+/ZFz549kZSUFPL7vffei82bN0eV9ltvvTXEiRUfH4+ePXuiT58+xt1s3333nfEINVO6yImVnZ2NXr16IRAIhNy3efNmvP/++1GlvyXSqlUrDBo0CN27dw/5rVOnThg0aBAGDRpkc5J89NFHRidWSkoKevToEdK2a2trcfHFF6OgoCBsesiJFRcXh8MOOwypqakAgPPPPz+ifHnh+eefx+7du23Xjj/++JD7Fi9e7DnMefPmYejQoVi3bl1UaZo6dSpGjBhhu7Zjxw7ceeedAPa8w0rvP+eeey7OO++8qOLzQkssJ0EQBEEQBEFobsSRJQiCIAiCILQI1q9fH3LNtLO
|
||
|
"text/plain": [
|
||
|
"<Figure size 1800x450 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"kernel_size = [5,9,15,25]\n",
|
||
|
"\n",
|
||
|
"I = cv2.imread('lena.bmp', cv2.IMREAD_GRAYSCALE)\n",
|
||
|
"I_salt_and_pepper = add_salt_and_pepper_noise(I)\n",
|
||
|
"\n",
|
||
|
"# 设置高斯噪声参数\n",
|
||
|
"mean = 0 # 均值\n",
|
||
|
"variance = 0.1**2 # 方差,决定了噪声的强度\n",
|
||
|
"# 生成与图像相同尺寸的高斯噪声\n",
|
||
|
"noise = np.random.normal(mean, variance ** 0.5, I.shape)\n",
|
||
|
"# 将噪声添加到图像\n",
|
||
|
"I_gaussian = I + noise\n",
|
||
|
"# 转为int类型\n",
|
||
|
"I_gaussian = np.clip(I_gaussian, 0, 255).astype(np.uint8)\n",
|
||
|
"\n",
|
||
|
"# 指数噪声\n",
|
||
|
"# 设置指数分布的尺度参数,这个参数可以根据需要进行调整\n",
|
||
|
"scale = 0.5\n",
|
||
|
"# 生成与图像大小相同的指数噪声矩阵\n",
|
||
|
"noise = np.random.exponential(scale, I.shape)\n",
|
||
|
"I_exponential = I + noise\n",
|
||
|
"# 转为int类型\n",
|
||
|
"I_exponential = np.clip(I_exponential, 0, 255).astype(np.uint8)\n",
|
||
|
"\n",
|
||
|
"# 均值滤波\n",
|
||
|
"for size in kernel_size:\n",
|
||
|
" I_mean_salt_and_pepper = cv2.blur(I_salt_and_pepper, (size, size))\n",
|
||
|
" I_mean_gaussian = cv2.blur(I_gaussian, (size, size))\n",
|
||
|
" I_mean_exponential = cv2.blur(I_exponential, (size, size))\n",
|
||
|
" \n",
|
||
|
" # 设置全局字体大小和样式\n",
|
||
|
" plt.rcParams.update({'font.size': 10, 'font.family': 'Arial'})\n",
|
||
|
"\n",
|
||
|
" # 创建子图并优化布局\n",
|
||
|
" fig, axs = plt.subplots(1, 4, figsize=(12, 3), dpi=150)\n",
|
||
|
" plt.subplots_adjust(wspace=0.3, hspace=0.3) # 调整子图间距\n",
|
||
|
"\n",
|
||
|
" # 添加大标题\n",
|
||
|
" fig.suptitle(f'Mean Filter {size} x {size}', fontsize=16, fontweight='bold')\n",
|
||
|
"\n",
|
||
|
" # 原始图像\n",
|
||
|
" axs[0].imshow(I_salt_and_pepper, cmap='gray')\n",
|
||
|
" axs[0].set_title('Original Image', fontsize=10)\n",
|
||
|
" axs[0].axis('off')\n",
|
||
|
"\n",
|
||
|
" # Salt and Pepper 平滑处理\n",
|
||
|
" axs[1].imshow(I_mean_salt_and_pepper, cmap='gray') # 可尝试其他cmap如'bone'增强对比\n",
|
||
|
" axs[1].set_title('Mean Filtered (Salt & Pepper)', fontsize=10)\n",
|
||
|
" axs[1].axis('off')\n",
|
||
|
"\n",
|
||
|
" # 高斯噪声平滑处理\n",
|
||
|
" axs[2].imshow(I_mean_gaussian, cmap='gray')\n",
|
||
|
" axs[2].set_title('Mean Filtered (Gaussian)', fontsize=10)\n",
|
||
|
" axs[2].axis('off')\n",
|
||
|
"\n",
|
||
|
" # 指数噪声平滑处理\n",
|
||
|
" axs[3].imshow(I_mean_exponential, cmap='gray')\n",
|
||
|
" axs[3].set_title('Mean Filtered (Exponential)', fontsize=10)\n",
|
||
|
" axs[3].axis('off')\n",
|
||
|
"\n",
|
||
|
" # 显示图像\n",
|
||
|
" plt.tight_layout() # 自动调整子图参数,使之填充整个图像区域\n",
|
||
|
" plt.show()\n",
|
||
|
"\n",
|
||
|
"\n",
|
||
|
"# 中值滤波\n",
|
||
|
"for size in kernel_size:\n",
|
||
|
" I_median_salt_and_pepper = cv2.medianBlur(I_salt_and_pepper, size)\n",
|
||
|
" I_median_gaussian = cv2.medianBlur(I_gaussian, size)\n",
|
||
|
" I_median_exponential = cv2.medianBlur(I_exponential, size)\n",
|
||
|
" \n",
|
||
|
" # 设置全局字体大小和样式\n",
|
||
|
" plt.rcParams.update({'font.size': 10, 'font.family': 'Arial'})\n",
|
||
|
"\n",
|
||
|
" # 创建子图并优化布局\n",
|
||
|
" fig, axs = plt.subplots(1, 4, figsize=(12, 3), dpi=150)\n",
|
||
|
" plt.subplots_adjust(wspace=0.3, hspace=0.3)\n",
|
||
|
"\n",
|
||
|
" # 添加大标题\n",
|
||
|
" fig.suptitle(f'Median Filter {size} x {size}', fontsize=16, fontweight='bold')\n",
|
||
|
"\n",
|
||
|
" # 原始图像\n",
|
||
|
" axs[0].imshow(I_salt_and_pepper, cmap='gray')\n",
|
||
|
" axs[0].set_title('Original Image', fontsize=10)\n",
|
||
|
" axs[0].axis('off')\n",
|
||
|
"\n",
|
||
|
" # Salt and Pepper 平滑处理\n",
|
||
|
" axs[1].imshow(I_median_salt_and_pepper, cmap='gray')\n",
|
||
|
" axs[1].set_title('Median Filtered (Salt & Pepper)', fontsize=10)\n",
|
||
|
" axs[1].axis('off')\n",
|
||
|
"\n",
|
||
|
" # 高斯噪声平滑处理\n",
|
||
|
" axs[2].imshow(I_median_gaussian, cmap='gray')\n",
|
||
|
" axs[2].set_title('Median Filtered (Gaussian)', fontsize=10)\n",
|
||
|
" axs[2].axis('off')\n",
|
||
|
"\n",
|
||
|
" # 指数噪声平滑处理\n",
|
||
|
" axs[3].imshow(I_median_exponential, cmap='gray')\n",
|
||
|
" axs[3].set_title('Median Filtered (Exponential)', fontsize=10)\n",
|
||
|
" axs[3].axis('off')\n",
|
||
|
"\n",
|
||
|
" # 显示图像\n",
|
||
|
" plt.tight_layout()\n",
|
||
|
" plt.show()\n",
|
||
|
"\n",
|
||
|
"# 高斯滤波\n",
|
||
|
"for size in kernel_size:\n",
|
||
|
" I_gaussian_salt_and_pepper = cv2.GaussianBlur(I_salt_and_pepper, (size, size), 0)\n",
|
||
|
" I_gaussian_gaussian = cv2.GaussianBlur(I_gaussian, (size, size), 0)\n",
|
||
|
" I_gaussian_exponential = cv2.GaussianBlur(I_exponential, (size, size), 0)\n",
|
||
|
"\n",
|
||
|
" # 设置全局字体大小和样式\n",
|
||
|
" plt.rcParams.update({'font.size': 10, 'font.family': 'Arial'})\n",
|
||
|
" \n",
|
||
|
" # 创建子图并优化布局\n",
|
||
|
" fig, axs = plt.subplots(1, 4, figsize=(12, 3), dpi=150)\n",
|
||
|
" plt.subplots_adjust(wspace=0.3, hspace=0.3)\n",
|
||
|
"\n",
|
||
|
" # 添加大标题\n",
|
||
|
" fig.suptitle(f'Gaussian Filter {size} x {size}', fontsize=16, fontweight='bold')\n",
|
||
|
"\n",
|
||
|
" # 原始图像\n",
|
||
|
" axs[0].imshow(I_salt_and_pepper, cmap='gray')\n",
|
||
|
" axs[0].set_title('Original Image', fontsize=10)\n",
|
||
|
" axs[0].axis('off')\n",
|
||
|
"\n",
|
||
|
" # Salt and Pepper 平滑处理\n",
|
||
|
" axs[1].imshow(I_gaussian_salt_and_pepper, cmap='gray')\n",
|
||
|
" axs[1].set_title('Gaussian Filtered (Salt & Pepper)', fontsize=10)\n",
|
||
|
" axs[1].axis('off')\n",
|
||
|
"\n",
|
||
|
" # 高斯噪声平滑处理\n",
|
||
|
" axs[2].imshow(I_gaussian_gaussian, cmap='gray')\n",
|
||
|
" axs[2].set_title('Gaussian Filtered (Gaussian)', fontsize=10)\n",
|
||
|
" axs[2].axis('off')\n",
|
||
|
"\n",
|
||
|
" # 指数噪声平滑处理\n",
|
||
|
" axs[3].imshow(I_gaussian_exponential, cmap='gray')\n",
|
||
|
" axs[3].set_title('Gaussian Filtered (Exponential)', fontsize=10)\n",
|
||
|
" axs[3].axis('off')\n",
|
||
|
"\n",
|
||
|
" # 显示图像\n",
|
||
|
" plt.tight_layout()\n",
|
||
|
" plt.show()\n",
|
||
|
"\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": null,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"import cv2\n",
|
||
|
"import numpy as np\n",
|
||
|
"import matplotlib.pyplot as plt\n",
|
||
|
"\n",
|
||
|
"kernel = [5,9,15,25]\n",
|
||
|
"\n",
|
||
|
"I = cv2.imread('lena.bmp', cv2.IMREAD_GRAYSCALE)\n",
|
||
|
"I_salt_and_pepper = add_salt_and_pepper_noise(I)\n",
|
||
|
"\n",
|
||
|
"mean = 0 \n",
|
||
|
"variance = 0.1**2 \n",
|
||
|
"noise = np.random.normal(mean, variance ** 0.5, I.shape)\n",
|
||
|
"I_gaussian = I + noise\n",
|
||
|
"\n",
|
||
|
"scale = 0.5\n",
|
||
|
"noise = np.random.exponential(scale, I.shape)\n",
|
||
|
"I_exponential = I + noise"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 6,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcoAAAGZCAYAAAAJhnGFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9d5Cl2Vke/tycc+cw3dNhctid3dUGrbRa7S6ShYQESC4k2xgX2CWXgbJdVOEqYxOKAhtVYbAxULZlBAgJCZQQyquMVppdzU7YmZ083dM53Zxv33u/3x/397z9fqfv7PZggUb2fau6uvuG7/vOOe95w/OG47Asy0KPetSjHvWoRz3qSs7v9wP0qEc96lGPenQvU09R9qhHPepRj3r0CtRTlD3qUY961KMevQL1FGWPetSjHvWoR69APUXZox71qEc96tErUE9R9qhHPepRj3r0CtRTlD3qUY961KMevQL1FGWPetSjHvWoR69APUXZox71qEc96tErUE9R9qhHPerR95C+9rWvweFw4Gtf+9qrfvYNb3gD3vCGN/ydP5NJd/OMPQLc3+8H6FGPetSjHv390qlTp/Dtb38bR44c+X4/yg8E9RTl3wFVKhUEg8Hv92P0qEc96lFXikajeOSRR77fj/EDQz3o9f+QfuVXfgUOhwMvvvgi3vnOdyKRSGB6ehrf/e538RM/8ROYnJxEIBDA5OQk3v3ud+P27dvy3UKhALfbjfe9733y2tbWFpxOJ2KxGJrNprz+8z//8+jv70evh32PevR3Szdu3MA/+2f/DLOzswgGgxgdHcXb3vY2vPTSS7s+e+XKFbz5zW9GMBhEX18f3vve96JYLO76nGVZ+K3f+i1MTEzA7/fj1KlT+NznPrfnZ3I4HPjZn/1Z/Omf/ikOHz6MYDCIkydP4q//+q93ffZv/uZv8NRTTyESiSAYDOKxxx7DZz7zGdtnukGvt27dwk/8xE9gZGQEPp8Pg4ODeOqpp3Du3Dnbdz/ykY/g0UcfRSgUQjgcxpve9CacPXt2z2P5QaSeovwe0Y/92I9hZmYGf/EXf4E//MM/xPz8PA4ePIjf+Z3fwRe+8AX85//8n7G6uoqHHnoIW1tbADpW3UMPPYRnn31WrvPlL38ZPp8PxWIRzz//vLz+7LPP4o1vfCMcDsff+9h61KP/l2hlZQWpVAr/6T/9J3z+85/Hf//v/x1utxsPP/wwrl69Kp9bX1/HE088gYsXL+L3f//38ad/+qcolUr42Z/92V3X/NVf/VX84i/+Ip555hl88pOfxL/8l/8S//yf/3Pb9V6NPvOZz+D3fu/38Gu/9mv42Mc+hmQyiR/90R/FrVu35DNf//rX8cY3vhH5fB7vf//78eEPfxiRSARve9vb8JGPfOQVr/+Wt7wFZ86cwW/91m/hS1/6Ev7gD/4A999/P3K5nHzmN37jN/Dud78bR44cwUc/+lH86Z/+KYrFIl73utfh5Zdf3vNYfuDI6tH/Ef3yL/+yBcD6j//xP77i55rNplUqlaxQKGT97u/+rrz+S7/0S1YgELBqtZplWZb1Mz/zM9ab3/xm68SJE9av/uqvWpZlWcvLyxYA63/8j//xdzeQHvWoR12p2WxajUbDmp2dtf7Nv/k38vov/uIvWg6Hwzp37pzt888884wFwPrqV79qWZZlZbNZy+/3Wz/6oz9q+9y3vvUtC4D1xBNPvOozALAGBwetQqEgr62trVlOp9P6zd/8TXntkUcesQYGBqxisWh7/mPHjlljY2NWu922LMuyvvrVr9qecWtrywJg/c7v/M4dn2FhYcFyu93Wz/3cz9leLxaL1tDQkPUP/+E/fNVx/KBSz6P8HtGP//iP2/4vlUr4xV/8RczMzMDtdsPtdiMcDqNcLuPy5cvyuaeeegrVahXPPfccgI7n+Mwzz+Dpp5/Gl770JXkNAJ5++um/p9H0qEf/71Kz2cRv/MZv4MiRI/B6vXC73fB6vbh+/bpt7371q1/F0aNHcfLkSdv33/Oe99j+//a3v41arYZ/9I/+ke31xx57DBMTE3t+rieffBKRSET+HxwcxMDAgIRzyuUyTp8+jXe+850Ih8PyOZfLhX/yT/4JlpaW7ujBJpNJTE9P433vex9++7d/G2fPnkW73bZ95gtf+AKazSZ+8id/Es1mU378fj+eeOKJ/6szaHuK8ntEw8PDtv/f85734Pd+7/fwMz/zM/jCF76A559/Hi+88AL6+/tRrVblc4899hiCwSCeffZZ3LhxA/Pz86IoT58+jVKphGeffRZTU1PYv3//3/ewetSj/+fo3/7bf4v/8B/+A97xjnfg05/+NE6fPo0XXngBJ0+etO3ddDqNoaGhXd83X0un011fv9Nrd6JUKrXrNZ/PJ8+UzWZhWdYuWQQAIyMjtmcxyeFw4Mtf/jLe9KY34bd+67dw6tQp9Pf34+d//ucl5rq+vg4AeOihh+DxeGw/H/nIRySk9H8j9bJev0ekY4f5fB5//dd/jV/+5V/Gv/t3/05er9fryGQytu95vV48/vjjePbZZzE2NoahoSEcP34cU1NTADpB9y9/+ct461vf+vczkB716P9x+uAHP4if/MmfxG/8xm/YXt/a2kI8Hpf/U6kU1tbWdn3ffI0K7k6fnZyc/D9/aACJRAJOpxOrq6u73ltZWQEA9PX13fH7ExMTeP/73w8AuHbtGj760Y/iV37lV9BoNPCHf/iH8t2//Mu/vCtP+P8G6nmUfwfkcDhgWRZ8Pp/t9f/1v/4XWq3Wrs8//fTTOHPmDD72sY8JvBoKhfDII4/gv/23/4aVlZUe7NqjHv09kcPh2LV3P/OZz2B5edn22pNPPolLly7h/Pnzttc/9KEP2f5/5JFH4Pf78Wd/9me215977jlbFvz/KYVCITz88MP4+Mc/bvN82+02PvjBD2JsbAwHDhzY07UOHDiAX/qlX8Lx48fx4osvAgDe9KY3we124+bNm3jwwQe7/vzfSj2P8u+AotEoXv/61+N973sf+vr6MDk5ia9//et4//vfb7NISU899RRarRa+/OUv44//+I/l9aeffhq//Mu/DIfDgTe+8Y1/jyPoUY/+36W3vvWt+MAHPoBDhw7hxIkTOHPmDN73vvdhbGzM9rl//a//Nf73//7f+OEf/mH8+q//OgYHB/Fnf/ZnuHLliu1ziUQCv/ALv4Bf//Vfx8/8zM/gXe96FxYXF/Erv/IrdwW97oV+8zd/E8888wyefPJJ/MIv/AK8Xi9+//d/HxcvXsSHP/zhO2bNX7hwAT/7sz+Ld73rXZidnYXX68VXvvIVXLhwQVCxyclJ/Nqv/Rr+/b//97h16xbe/OY3I5FIYH19Hc8//zxCoRB+9Vd/9Xs6nnuGvt/ZRD/oxKzXzc1N2+tLS0vWj//4j1uJRMKKRCLWm9/8ZuvixYvWxMSE9U//6T+1fbbdblt9fX0WAGt5eVleZ1bcqVOn/j6G0qMe9cjqZKn+9E//tDUwMGAFg0Hr8ccft775zW9aTzzxxK4M1Zdfftl65plnLL/fbyWTSeunf/qnrU996lO2jFLL6uzx3/zN37TGx8ctr9drnThxwvr0pz/d9ZrdCID1r/7Vv9r1ejd58s1vftN64xvfaIVCISsQCFiPPPKI9elPf9r2GTPrdX193fqpn/op69ChQ1YoFLLC4bB14sQJ67/8l/9iNZtN23c/+clPWk8++aQVjUYtn89nTUxMWO985zutZ5999lXH8YNKDsvqVbD3qEc96lGPenQn6sUoe9SjHvWoRz16Beopyh71qEc96lGPXoF6irJHPepRj3rUo1egnqLsUY961KMe9egVqKcoe9SjHvWoRz16Beopyh71qEc96lGPXoH23HDgAx/4ANrtNlwuF9rtNtrtNlqtFhwOB1qtlpyT6HA44HK54PV64XK54PP54HA40G630Wg0kMvlUCgUsLi4iM3NTWmq63a74XQ64Xa70Wq15D5OZ0eXW5aFdrstTYrdbjdcLhecTidcLhcAwOPxwOl0yvdcLhe2t7d3D9rthmVZcDgcXQtw2+02HA4HnE6nPAs/azY
|
||
|
"text/plain": [
|
||
|
"<Figure size 640x480 with 4 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"#手动实现中值滤波\n",
|
||
|
"def median_filter(image, kernel_size):\n",
|
||
|
" if kernel_size % 2 == 0:\n",
|
||
|
" raise ValueError(\"Kernel size must be an odd number.\")\n",
|
||
|
" \n",
|
||
|
" # 获取图像的尺寸\n",
|
||
|
" height, width = image.shape\n",
|
||
|
" \n",
|
||
|
" # 创建一个与原图大小相同的输出数组\n",
|
||
|
" filtered_image = np.zeros_like(image)\n",
|
||
|
" \n",
|
||
|
" # 遍历图像的每个像素点\n",
|
||
|
" for i in range(height):\n",
|
||
|
" for j in range(width):\n",
|
||
|
" # 对于每个像素点,收集其周围像素点的值\n",
|
||
|
" kernel = []\n",
|
||
|
" for x in range(kernel_size):\n",
|
||
|
" for y in range(kernel_size):\n",
|
||
|
" # 计算当前窗口内的像素点的坐标\n",
|
||
|
" nx, ny = i + x - kernel_size // 2, j + y - kernel_size // 2\n",
|
||
|
" # 忽略超出图像边界的坐标\n",
|
||
|
" if 0 <= nx < height and 0 <= ny < width:\n",
|
||
|
" kernel.append(image[nx, ny])\n",
|
||
|
" \n",
|
||
|
" # 对收集到的值进行排序,并取中值\n",
|
||
|
" kernel.sort()\n",
|
||
|
" median_value = kernel[len(kernel) // 2]\n",
|
||
|
" \n",
|
||
|
" # 将中值赋值给输出数组的对应位置\n",
|
||
|
" filtered_image[i, j] = median_value\n",
|
||
|
" \n",
|
||
|
" return filtered_image\n",
|
||
|
"\n",
|
||
|
"#中值滤波\n",
|
||
|
"# 读取图像\n",
|
||
|
"I = cv2.imread('lena.bmp', cv2.IMREAD_GRAYSCALE)\n",
|
||
|
"plt.subplot(2, 2, 1)\n",
|
||
|
"plt.imshow(I, cmap='gray')\n",
|
||
|
"plt.title('raw')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"# 添加椒盐噪声\n",
|
||
|
"J = add_salt_and_pepper_noise(I)\n",
|
||
|
"plt.subplot(2, 2, 2)\n",
|
||
|
"plt.imshow(J, cmap='gray')\n",
|
||
|
"plt.title('add noise')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"# 中值滤波\n",
|
||
|
"K1 = median_filter(J, 3)\n",
|
||
|
"K2 = median_filter(J, 5)\n",
|
||
|
"\n",
|
||
|
"# 显示滤波处理结果\n",
|
||
|
"plt.subplot(2, 2, 3)\n",
|
||
|
"plt.imshow(K1, cmap='gray')\n",
|
||
|
"plt.title('3x3')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"plt.subplot(2, 2, 4)\n",
|
||
|
"plt.imshow(K2, cmap='gray')\n",
|
||
|
"plt.title('5x5')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"\n",
|
||
|
"# 显示图像\n",
|
||
|
"plt.show()"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"metadata": {
|
||
|
"kernelspec": {
|
||
|
"display_name": "cv_course",
|
||
|
"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.11.8"
|
||
|
}
|
||
|
},
|
||
|
"nbformat": 4,
|
||
|
"nbformat_minor": 2
|
||
|
}
|