Ödev 1 - Histogram ve Varyans Hesaplama - Başkent Üniversitesi
Ödev 1 - Histogram ve Varyans Hesaplama - Başkent Üniversitesi
Ödev 1 - Histogram ve Varyans Hesaplama - Başkent Üniversitesi
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Histogram</strong> <strong>ve</strong> <strong>Varyans</strong> <strong>Hesaplama</strong><br />
1. <strong>Ödev</strong><br />
26.02.2007<br />
<strong>Başkent</strong> Üni<strong>ve</strong>rsitesi<br />
Bilgisayar Mühendisliği Bölümü<br />
İmge İşleme Dersi (Bil 411)<br />
20394676 - Ümit Burak USGURLU
<strong>Histogram</strong> bir imgedeki pikselleri oluşturan renklerin tonlarının dağılımını gösteren çizgedir. Kırmızı, yeşil <strong>ve</strong><br />
mavi (KVM) değerlerinin 8 bitlik aralık içinde hangi tonlarının daha baskın olduğunu gösterir.<br />
<strong>Ödev</strong> için “Lena” resmi kullanıldı <strong>ve</strong> C#’da yazılan uygulama ile tonların dağılımı çıkartıldı. Daha sonra bu<br />
değerler kullanılarak Microsoft Excel’de histogram çizgesi çizdirildi.<br />
Ton K Y M Gri Ton K Y M Gri Ton K Y M Gri<br />
0 0 0 0 0 85 1177 1475 2834 973 170 1250 414 797 1464<br />
1 0 0 0 0 86 1269 1513 2960 983 171 1403 483 784 1385<br />
2 0 0 0 0 87 1332 1537 2962 999 172 1534 504 746 1348<br />
3 0 11 0 0 88 1446 1813 2940 1024 173 1639 473 721 1287<br />
4 0 65 0 0 89 1487 1863 2911 1006 174 1682 474 725 1194<br />
5 0 111 0 0 90 1457 1681 2949 976 175 1776 452 673 1024<br />
6 0 164 0 0 91 1574 1885 3107 971 176 1874 621 674 985<br />
7 0 261 0 0 92 1585 2170 2983 1058 177 1769 587 629 876<br />
8 0 308 7 0 93 1591 1907 2922 1087 178 1582 512 633 828<br />
9 0 431 0 0 94 1557 2008 3045 1133 179 1743 611 641 847<br />
10 0 537 0 0 95 1569 1948 3017 1087 180 1441 652 632 795<br />
11 0 682 0 0 96 1660 2325 2738 1226 181 1477 723 652 739<br />
12 0 846 1 0 97 1648 2094 2826 1257 182 1483 645 580 831<br />
13 0 912 0 0 98 1420 1713 2700 1267 183 1409 656 599 859<br />
14 0 1074 0 0 99 1559 2084 2818 1376 184 1437 850 575 826<br />
15 0 1350 0 0 100 1418 1670 2710 1496 185 1449 777 583 869<br />
16 0 1480 0 0 101 1384 1811 2618 1606 186 1389 720 580 742<br />
17 0 1681 0 0 102 1319 1720 2559 1752 187 1479 719 511 803<br />
18 0 1621 0 0 103 1342 1743 2777 1967 188 1592 812 525 785<br />
19 0 2064 0 0 104 1156 1603 2611 2057 189 1655 741 471 768<br />
20 0 1835 0 0 105 1120 1693 2643 2116 190 1657 646 421 828<br />
21 0 2048 0 0 106 955 1386 2597 2203 191 1666 703 393 878<br />
22 0 1989 0 0 107 969 1515 2582 2090 192 1857 778 297 869<br />
23 0 1911 0 0 108 828 1639 2622 2028 193 1896 767 330 890<br />
24 0 2258 0 0 109 782 1542 2560 1982 194 1813 611 274 901<br />
25 0 2129 0 0 110 752 1588 2538 1945 195 1979 800 219 1045<br />
26 0 1748 0 0 111 737 1540 2558 1856 196 1814 699 191 1004<br />
27 0 1776 0 0 112 719 1784 2531 1710 197 1956 795 183 1094<br />
28 0 1850 0 0 113 700 1751 2517 1542 198 1928 781 166 1118<br />
29 0 1687 0 0 114 628 1425 2660 1513 199 2055 830 152 1245<br />
30 0 1605 0 0 115 673 1836 2641 1562 200 2012 816 109 1300<br />
31 0 1661 0 0 116 587 1604 2756 1435 201 2303 912 108 1196<br />
32 0 1355 0 0 117 617 1565 2867 1599 202 2333 843 75 1169<br />
33 0 1360 0 0 118 610 1581 2872 1555 203 2670 851 91 1113<br />
34 0 1189 0 0 119 592 1507 3066 1517 204 2787 847 67 1011<br />
35 0 1278 0 1 120 557 1762 2912 1552 205 3232 788 67 991<br />
36 0 1062 0 0 121 593 1769 3011 1650 206 3154 687 61 875<br />
37 0 1027 0 6 122 552 1448 2813 1591 207 3476 700 56 798<br />
38 0 1052 0 7 123 566 1654 2909 1738 208 3424 573 37 703<br />
39 0 1084 0 24 124 582 1872 2780 1758 209 3516 499 30 618<br />
40 0 1013 0 38 125 559 1914 2745 1884 210 3102 377 27 562<br />
41 0 1026 3 62 126 571 1844 2527 2036 211 3176 388 23 522<br />
42 0 915 2 86 127 520 2103 2097 2115 212 2787 288 19 401<br />
43 0 926 7 128 128 664 1925 2202 2371 213 2885 294 24 318<br />
44 0 1029 14 183 129 650 2023 1984 2488 214 2630 241 18 270<br />
45 0 1013 24 236 130 618 1811 1854 2424 215 2731 201 8 209<br />
46 0 1023 46 307 131 730 2206 1756 2512 216 2664 168 7 170<br />
47 0 875 67 401 132 594 1907 1499 2672 217 2955 167 4 164<br />
48 0 1110 108 511 133 667 1968 1331 2541 218 2955 125 2 148<br />
49 0 1057 137 646 134 675 2026 1237 2522 219 3360 114 1 109
50 0 862 254 792 135 685 2096 1146 2380 220 3554 102 0 102<br />
51 0 1120 347 956 136 771 2032 1027 2286 221 4138 108 0 67<br />
52 0 927 483 1163 137 715 2029 1015 2207 222 3987 68 0 70<br />
53 0 1073 626 1363 138 667 1730 874 2293 223 4057 57 3 47<br />
54 1 1069 785 1651 139 740 1607 905 2195 224 4327 54 1 36<br />
55 0 1004 1135 1809 140 744 1666 839 2406 225 3713 49 1 32<br />
56 1 1275 1262 1953 141 766 1454 866 2573 226 3185 16 0 15<br />
57 1 1274 1631 2107 142 765 1341 808 2660 227 2929 18 0 7<br />
58 1 1129 1756 2187 143 772 1354 849 2691 228 2551 10 0 14<br />
59 8 1266 2201 2252 144 817 1247 801 2860 229 2432 7 0 4<br />
60 6 1495 2355 2277 145 817 1213 870 2802 230 2195 5 0 8<br />
61 10 1548 2514 2269 146 744 942 791 2780 231 2256 9 0 1<br />
62 9 1591 2767 2114 147 806 1152 801 2685 232 1960 2 0 0<br />
63 20 2046 2943 2121 148 760 931 796 2728 233 2126 1 0 1<br />
64 37 1706 2958 1942 149 777 1080 770 2732 234 2186 1 0 1<br />
65 32 1998 2921 1899 150 812 981 757 2885 235 2265 0 0 0<br />
66 41 1704 2876 1680 151 797 904 889 2906 236 2417 2 0 0<br />
67 53 2022 2907 1607 152 799 1006 838 2976 237 2445 0 0 1<br />
68 74 1705 2869 1446 153 861 1003 863 3066 238 2282 0 0 0<br />
69 103 1800 2873 1352 154 814 814 914 3183 239 1826 0 0 0<br />
70 132 1674 2899 1290 155 910 779 868 3060 240 1972 0 0 1<br />
71 179 1766 3043 1121 156 907 848 844 2911 241 1456 0 0 0<br />
72 193 1593 2919 1061 157 918 817 880 2801 242 1137 1 0 0<br />
73 242 1711 3041 987 158 888 756 967 2555 243 986 0 0 0<br />
74 238 1474 3107 978 159 1011 828 972 2371 244 748 0 0 0<br />
75 336 1491 3238 944 160 879 690 837 2283 245 749 2 0 0<br />
76 386 1566 3224 923 161 996 696 924 2202 246 667 0 0 0<br />
77 404 1456 3140 876 162 912 579 901 1932 247 582 0 0 0<br />
78 483 1445 3218 859 163 952 622 924 1691 248 428 1 0 0<br />
79 607 1524 3189 867 164 884 514 830 1601 249 357 0 0 0<br />
80 628 1371 3004 834 165 1074 528 809 1442 250 313 0 0 0<br />
81 771 1545 3030 901 166 977 499 819 1500 251 302 0 0 0<br />
82 785 1278 3078 959 167 1073 506 897 1465 252 242 0 0 0<br />
83 1001 1606 3008 994 168 1040 450 797 1493 253 178 0 0 0<br />
84 1016 1364 2787 952 169 1216 504 802 1432 254 67 0 0 0<br />
255 112 0 0 0<br />
Tabloda da görüldüğü üzere her bir pikselin renk değerlerinin ortalaması alınarak 8bitlik bir gri ton histrogram<br />
elde edildi. Aşağıdaki çizgelerde kullanılan renkler o rengin imge içindeki dağılımını <strong>ve</strong>rmektedir.<br />
Counts<br />
4500<br />
4000<br />
3500<br />
3000<br />
2500<br />
2000<br />
1500<br />
1000<br />
500<br />
0<br />
0 50 100 150 200 250<br />
Values<br />
Counts<br />
4500<br />
4000<br />
3500<br />
3000<br />
2500<br />
2000<br />
1500<br />
1000<br />
500<br />
0<br />
0 50 100 150 200 250<br />
Values
Counts<br />
4500<br />
4000<br />
3500<br />
3000<br />
2500<br />
2000<br />
1500<br />
1000<br />
500<br />
Counts<br />
0<br />
0 50 100 150 200 250<br />
4500<br />
4000<br />
3500<br />
3000<br />
2500<br />
2000<br />
1500<br />
1000<br />
500<br />
0<br />
Values<br />
Counts<br />
4500<br />
4000<br />
3500<br />
3000<br />
2500<br />
2000<br />
1500<br />
1000<br />
500<br />
0<br />
0 50 100 150 200 250<br />
Values<br />
0 50 100 150 200 250<br />
Values<br />
Pikseller için örnek varyansı (sample variance) elde KYM ortalamasından edilen gri ton değeri kullanılarak<br />
hesaplandı. <strong>Varyans</strong> hesabında aşağıdaki formül kullanıldı.<br />
A ( N × M<br />
)<br />
imge olmak üzere<br />
m<br />
A<br />
=<br />
N M −1<br />
−1<br />
∑∑<br />
i=<br />
0 j=<br />
0<br />
A(<br />
i,<br />
j)<br />
NM<br />
2<br />
σ<br />
örnek ortalaması,<br />
<strong>Varyans</strong> 0,0007476807 olarak aynı programda hesaplatıldı.<br />
Örnek uygulama çıktısı <strong>ve</strong> uygulamanın kaynak kodu aşağıda <strong>ve</strong>rilmiştir.<br />
A<br />
=<br />
N M −1<br />
−1<br />
∑∑<br />
i=<br />
0 j=<br />
0<br />
( A(<br />
i,<br />
j)<br />
− m<br />
NM<br />
A<br />
)<br />
2<br />
örnek varyansı.
long[] redHist = new long[256];<br />
long[] greenHist = new long[256];<br />
long[] blueHist = new long[256];<br />
long[] avgHist = new long[256];<br />
long avgTotal = 0;<br />
int avgCount = 0;<br />
System.Drawing.Bitmap picture = new Bitmap(this.textBoxFile.Text);<br />
for (int i = 0; i < picture.Size.Width; i++)<br />
{<br />
for (int j = 0; j < picture.Size.Height; j++)<br />
{<br />
System.Drawing.Color c = picture.GetPixel(i, j);<br />
redHist[c.R]++;<br />
greenHist[c.G]++;<br />
blueHist[c.B]++;<br />
avgTotal += (int)((c.R + c.G + c.B) / 3);<br />
avgCount++;<br />
avgHist[(int)((c.R + c.G + c.B) / 3)]++;<br />
}<br />
}<br />
float variance = 0;<br />
long avgA<strong>ve</strong>rage = avgTotal / avgCount;<br />
for (int i = 0; i < picture.Size.Width; i++)<br />
{<br />
for (int j = 0; j < picture.Size.Height; j++)<br />
{<br />
System.Drawing.Color c = picture.GetPixel(i, j);<br />
variance=+(float)Math.Pow((int)((c.R + c.G + c.B) / 3) - avgA<strong>ve</strong>rage,<br />
2)/avgCount;<br />
}<br />
}<br />
textBoxVariance.Text = variance.ToString();<br />
for (int i = 0; i < 256; i++)<br />
this.dataGridView1.Rows.Insert(i, i, redHist[i], greenHist[i], blueHist[i],<br />
avgHist[i]);