Image:JPEG example subimage - equalized.svg
From Wikipedia, the free encyclopedia
JPEG_example_subimage_-_equalized.svg (SVG file, nominally 400 × 400 pixels, file size: 22 KB)
| | This is a file from the Wikimedia Commons. The description on its description page there is shown below.
|
[edit] Summary
| Description | |
|---|---|
| Source |
Own work in Inkscape |
| Date | |
| Author | |
| Permission (Reusing this image) |
GFDL (image); GPL (source code) |
| Other versions | Image:JPEG example subimage.svg — Non-equalized image |
[edit] Source code
I generated the normalized data by writing a simple python script:
import math
img = [
[52, 55, 61, 66, 70, 61, 64, 73],
[63, 59, 55, 90, 109, 85, 69, 72],
[62, 59, 68, 113, 144, 104, 66, 73],
[63, 58, 71, 122, 154, 106, 70, 69],
[67, 61, 68, 104, 126, 88, 68, 70],
[79, 65, 60, 70, 77, 68, 58, 75],
[85, 71, 64, 59, 55, 61, 65, 83],
[87, 79, 69, 68, 65, 76, 78, 94]
]
# Number of pixels
N = len(img) * len(img[0])
# Initialize histogram and cumulative distribution function (cdf)
hist = {}
cdf = {}
norm_cdf = {}
for i in range(255):
hist[i] = 0
cdf[i] = 0
norm_cdf[i] = 0
# Create histogram
for row in img:
for val in row:
hist[val] += 1
# Create cdf
for i in range(255):
for j in range(i+1):
cdf[i] += hist[j]
norm_cdf[i] = int(math.floor(float(cdf[i]-1)/63*255))
newimg = [
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0]
]
for i in range(8):
for j in range(8):
newimg[i][j] = norm_cdf[ img[i][j] ]
print '+-------+-----------+-----+----------------+'
print '| %5s | %9s | %3s | %14s |' % ('Value', 'Histogram', 'cdf', 'Normalized cdf')
print '+-------+-----------+-----+----------------+'
for i in range(255):
if hist[i] == 0: continue
print '| %5s | %9s | %3s | %14s |' % (i, hist[i], cdf[i], norm_cdf[i])
print '+-------+-----------+-----+----------------+'
print ''
print 'Original subimage:'
print ''
for i in range(8):
print ('%4d'*8) % tuple(img[i])
print ''
print ''
print 'Equalized subimage:'
print ''
for i in range(8):
print ('%4d'*8) % tuple(newimg[i])
Sample output:
+-------+-----------+-----+----------------+ | Value | Histogram | cdf | Normalized cdf | +-------+-----------+-----+----------------+ | 52 | 1 | 1 | 0 | | 55 | 3 | 4 | 12 | | 58 | 2 | 6 | 20 | | 59 | 3 | 9 | 32 | | 60 | 1 | 10 | 36 | | 61 | 4 | 14 | 52 | | 62 | 1 | 15 | 56 | | 63 | 2 | 17 | 64 | | 64 | 2 | 19 | 72 | | 65 | 3 | 22 | 85 | | 66 | 2 | 24 | 93 | | 67 | 1 | 25 | 97 | | 68 | 5 | 30 | 117 | | 69 | 3 | 33 | 129 | | 70 | 4 | 37 | 145 | | 71 | 2 | 39 | 153 | | 72 | 1 | 40 | 157 | | 73 | 2 | 42 | 165 | | 75 | 1 | 43 | 170 | | 76 | 1 | 44 | 174 | | 77 | 1 | 45 | 178 | | 78 | 1 | 46 | 182 | | 79 | 2 | 48 | 190 | | 83 | 1 | 49 | 194 | | 85 | 2 | 51 | 202 | | 87 | 1 | 52 | 206 | | 88 | 1 | 53 | 210 | | 90 | 1 | 54 | 214 | | 94 | 1 | 55 | 218 | | 104 | 2 | 57 | 226 | | 106 | 1 | 58 | 230 | | 109 | 1 | 59 | 234 | | 113 | 1 | 60 | 238 | | 122 | 1 | 61 | 242 | | 126 | 1 | 62 | 246 | | 144 | 1 | 63 | 250 | | 154 | 1 | 64 | 255 | +-------+-----------+-----+----------------+ Original subimage: 52 55 61 66 70 61 64 73 63 59 55 90 109 85 69 72 62 59 68 113 144 104 66 73 63 58 71 122 154 106 70 69 67 61 68 104 126 88 68 70 79 65 60 70 77 68 58 75 85 71 64 59 55 61 65 83 87 79 69 68 65 76 78 94 Equalized subimage: 0 12 52 93 145 52 72 165 64 32 12 214 234 202 129 157 56 32 117 238 250 226 93 165 64 20 153 242 255 230 145 129 97 52 117 226 246 210 117 145 190 85 36 145 178 117 20 170 202 153 72 32 12 52 85 194 206 190 129 117 85 174 182 218
[edit] Licensing
Image is licensed under the GFDL:
Source code is licensed under the GPL version 2:
|
File history
Click on a date/time to view the file as it appeared at that time.
| Date/Time | Dimensions | User | Comment | |
|---|---|---|---|---|
| current | 00:55, 4 January 2008 | 400×400 (22 KB) | Cburnett | ({{Information |Description={{en|8x8 pixel subimage used as an example for JPEG that has been histogram equalization.}} |Source=Own work in Inkscape |Date=January 3, 2008 |Author=en:User:Cburnett |Pe) |
File links
The following pages on the English Wikipedia link to this file (pages on other projects are not listed):


