Skip to content

Commit a7abbac

Browse files
committed
montagem dos graficos
1 parent 62af60e commit a7abbac

File tree

1 file changed

+169
-0
lines changed

1 file changed

+169
-0
lines changed

grafico_metricas.ipynb

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": null,
6+
"metadata": {},
7+
"outputs": [],
8+
"source": [
9+
"%load_ext autoreload\n",
10+
"%autoreload 2"
11+
]
12+
},
13+
{
14+
"cell_type": "code",
15+
"execution_count": null,
16+
"metadata": {},
17+
"outputs": [],
18+
"source": [
19+
"import os\n",
20+
"import sys\n",
21+
"module_path = os.path.abspath(os.path.join('..'))\n",
22+
"if module_path not in sys.path:\n",
23+
" sys.path.append(module_path)"
24+
]
25+
},
26+
{
27+
"cell_type": "code",
28+
"execution_count": null,
29+
"metadata": {},
30+
"outputs": [],
31+
"source": [
32+
"import cv2\n",
33+
"import sys\n",
34+
"import math\n",
35+
"import time\n",
36+
"import random\n",
37+
"import os\n",
38+
"from datetime import datetime\n",
39+
"from copy import deepcopy\n",
40+
"import numpy as np\n",
41+
"import matplotlib.pyplot as plt\n",
42+
"from skimage.metrics import structural_similarity as ssim\n",
43+
"from sewar.full_ref import vifp"
44+
]
45+
},
46+
{
47+
"cell_type": "code",
48+
"execution_count": null,
49+
"metadata": {},
50+
"outputs": [],
51+
"source": [
52+
"from iEBMO import bmoIE"
53+
]
54+
},
55+
{
56+
"cell_type": "code",
57+
"execution_count": null,
58+
"metadata": {},
59+
"outputs": [],
60+
"source": [
61+
"pSize = [1]\n",
62+
"maxIter = 1\n",
63+
"# imageNameList = ['./data/kodim/kodim04.png']\n",
64+
"# imageNameList = ['a0027.tiff', 'a0037.tiff', 'a0050.tiff']\n",
65+
"# imageNameList = ['a0027.png', 'a0037.png', 'a0050.png']\n",
66+
"\n",
67+
"# print(imageNameList)\n",
68+
"\n",
69+
"imageNameList = ['./data/kodim/kodim01.png', './data/kodim/kodim02.png', './data/kodim/kodim03.png', './data/kodim/kodim04.png',\n",
70+
" './data/kodim/kodim05.png', './data/kodim/kodim06.png', './data/kodim/kodim07.png', './data/kodim/kodim08.png', \n",
71+
" './data/kodim/kodim09.png', './data/kodim/kodim10.png','./data/kodim/kodim11.png', './data/kodim/kodim12.png', \n",
72+
" './data/kodim/kodim13.png', './data/kodim/kodim14.png', './data/kodim/kodim15.png', './data/kodim/kodim16.png', \n",
73+
" './data/kodim/kodim17.png', './data/kodim/kodim18.png', './data/kodim/kodim19.png', './data/kodim/kodim20.png', \n",
74+
" './data/kodim/kodim21.png', './data/kodim/kodim22.png', './data/kodim/kodim23.png', './data/kodim/kodim24.png', ]"
75+
]
76+
},
77+
{
78+
"cell_type": "code",
79+
"execution_count": null,
80+
"metadata": {},
81+
"outputs": [],
82+
"source": [
83+
"import datetime\n",
84+
"for i in range(len(imageNameList)):\n",
85+
" averagePsnr = 0\n",
86+
" averageSsim = 0\n",
87+
" averageVif = 0\n",
88+
" print(imageNameList[i])\n",
89+
" for popSize in pSize:\n",
90+
" print(popSize)\n",
91+
"\n",
92+
" inputName = \"GroundTruth/kodakDataset/\"+imageNameList[i]\n",
93+
" truthName = imageNameList[i]\n",
94+
"\n",
95+
" trImg = cv2.imread(truthName, 0)\n",
96+
" # cv2.imshow('input', trImg)\n",
97+
" histr = cv2.calcHist([trImg], [0], None, [256], [0, 256])\n",
98+
" plt.plot(histr)\n",
99+
" # histogram of ground truth\n",
100+
" name_image_list = imageNameList[i].split('/')\n",
101+
" time = datetime.datetime.now()\n",
102+
" print(time)\n",
103+
" plt.savefig(f\"./histogramsDIBCO/ht_{str(time).split('.')[1]}{name_image_list[-1]}\")\n",
104+
" plt.clf()\n",
105+
" cv2.imwrite(f\"./truthDIBCO/t_{str(time).split('.')[1]}{name_image_list[-1]}\", trImg)\n",
106+
"\n",
107+
" bestImage = deepcopy(trImg)\n",
108+
"\n",
109+
" maxPsnr = 0\n",
110+
" maxSsim = 0\n",
111+
" maxVif = 0\n",
112+
" maxfit = -1000\n",
113+
" for iteration in range(10):\n",
114+
" outputImage, fitval = bmoIE(truthName, popSize, maxIter)\n",
115+
"\n",
116+
" truthImage = cv2.imread(truthName, 0)\n",
117+
" psnrval = cv2.PSNR(outputImage, truthImage)\n",
118+
" ssimval = ssim(outputImage, truthImage)\n",
119+
" vifval = vifp(outputImage, truthImage)\n",
120+
" print(iteration,psnrval,ssimval,vifval,int((psnrval+ssimval+vifval)*100))\n",
121+
" print(psnrval, ssimval, vifval)\n",
122+
" \n",
123+
" # salvar metricas em arquivo\n",
124+
" with open('./metrics/metrics.txt', 'a') as f:\n",
125+
" f.write(f'{psnrval} {ssimval} {vifval} - {name_image_list[-1]}\\n')\n",
126+
" \n",
127+
" if (psnrval+ssimval+vifval) > maxfit:\n",
128+
" maxfit = psnrval+ssimval+vifval\n",
129+
" maxPsnr = psnrval\n",
130+
" maxSsim = ssimval\n",
131+
" maxVif = vifval\n",
132+
" bestImage = deepcopy(outputImage)\n",
133+
" # cv2.imshow(str(iteration+1),bestImage)\n",
134+
"\n",
135+
" print(maxPsnr, maxSsim, maxVif)\n",
136+
"\n",
137+
" averagePsnr += maxPsnr\n",
138+
" averageSsim += maxSsim\n",
139+
" averageVif += maxVif\n",
140+
" print(i+1,averagePsnr,averageSsim,averageVif)\n",
141+
"\n",
142+
" histr = cv2.calcHist([bestImage],[0],None,[256],[0,256])\n",
143+
" plt.plot(histr)\n",
144+
" time = datetime.datetime.now()\n",
145+
" plt.savefig(f\"./histogramsDIBCO/ho_{str(time).split('.')[1]}{name_image_list[-1]}\") #histogram of output image\n",
146+
" plt.clf()\n",
147+
" transImageName = \"o_\"+name_image_list[-1]\n",
148+
" cv2.imwrite(f\"./outputDIBCO/{str(time).split('.')[1]}{transImageName}\", bestImage)\n",
149+
"\n",
150+
"\n",
151+
" averagePsnr /= len(imageNameList)\n",
152+
" averageSsim /= len(imageNameList)\n",
153+
" averageVif /= len(imageNameList)\n",
154+
" print(\"final\")\n",
155+
" print(averagePsnr)\n",
156+
" print(averageSsim)\n",
157+
" print(averageVif)"
158+
]
159+
}
160+
],
161+
"metadata": {
162+
"language_info": {
163+
"name": "python"
164+
},
165+
"orig_nbformat": 4
166+
},
167+
"nbformat": 4,
168+
"nbformat_minor": 2
169+
}

0 commit comments

Comments
 (0)