Difference between revisions of "CT x-ray scanner"
m (→Acute Radiation Doses)
m (→Typical Dose)
|Line 184:||Line 184:|
'''ICRP''' recommended limit for nuclear disaster volunteers while rescuing lives: 1000 mSv
'''ICRP''' recommended limit for nuclear disaster volunteers while rescuing lives: 1000 mSv
== shielding ==
== shielding ==
Revision as of 23:22, 22 July 2011
- 1 CT scanner (x-ray CAT scan)
- 2 Shepp-Logan Phantom
- 3 Beam Hardening
- 4 physical process control variables
- 5 x-ray vs. gamma
- 6 scintillator phosphor
- 7 The "x-ray man" in San Francisco Bay View Shipyard
- 8 x-ray sources
- 9 insulating oil bath
- 10 Radiation Dosimetry
- 11 shielding
- 12 misc
- 13 A more complex example
- 14 Image processing
- 15 Source code
- 16 misc
CT scanner (x-ray CAT scan)
Some of the techniques used in Tomography were developed by the radiologist Alessandro Vallebona in the 1930's. Vallebona created a technique to overcome the problem of trying to take clear x-ray images of targets lost in the distracting clutter of foreground and/or background objects. How do you isolate the target from the clutter? For example, say you wanted to create a cross-section image of the spine. This would be difficult because no matter that angle you take the image from you will get the ribs and internal organs getting in the way. Vallebona's technique was simple and clever. While taking a long exposure he would rotate the x-ray emitter one direction while simultaneously rotating the film in the opposite direction. Anything at the center of rotation would appear still, while objects away from the center of rotation would be blurred away. Special equipment is needed to allow the x-ray emitter to smoothly track the film so that the x-ray emitter and film do not move relative to each other.
If this sounds confusing then imagine you are outside a picket fence that surrounds the house. You can't take a good photo of the house with all the picket slats blocking the view, but if you were looking at the house while sitting in a car driving past the house then the picket slats would blur together and the fence would appear to disappear. To take advantage of this effect with your camera you can't use a fast exposure because that would freeze the slats as if you were not moving. You need a long exposure to blur the fence away, but this would also blur the house; however, if you pivot the camera to track the house while you make the exposure then the wooden slats would still stay blurred, but the house would appear still. A similar trick is used to photograph a race car as it speeds by. Using a high-speed shutter will freeze everything as if there were no motion and you end up with a boring picture of a car sitting in the road with a bunch of people staring at it. But if take the shot with a slow shutter while you track the car speeding past you then the road and the spectators will be a speeding blur, but the car will be in focus.
Back to x-rays...
In a modern Computed Tomography (CT or CaT) system an x-ray emitter and a 1-dimensional detector band is rotated 360 degrees with the target in the middle. The detector band records how much the target attenuates the x-rays at different angles. A series of these snapshot recordings are saved at regular intervals. The series of 1-dimensional bands are used to reconstruct the 2-dimensional plane that intersects a projection of each bands. The number of bands in the series can vary. The more that are recorded, the better the reconstruction. The most common method is called filtered back projection. This is an easy algorithm to implement. Seeing the original reconstructed from a series of projections is rather magical. It seems too easy, but you get what you pay for. Filtered back projection suffers from a number of flaws including artifacts, ambiguous reconstruction shadows, and sensitivity to noise and missing data. No method is perfect, but there are alternatives which are better than filtered back projection. One alternative method is called iterative reconstruction. This method is much more complex and computationally expensive than filtered back projection, but it deals better with noise, incomplete data, and it produces fewer artifacts. There are many algorithms that follow the iterative reconstruction method. One example is Algebraic reconstruction.
In this demo I synthesize a set of 1-dimensional projections of a target image at different angles, then I reconstruct an approximation of the original target image.
Johann Radon defined a transform that for a given target gives a set of 1-dimensional projections of the average of the target's density along lines parallel to a given angle. This transform is called the Radon transform. In our case, the target's "density" is the pixel's brightness. The set of 1-dimensional projections is called a "sinogram", and is graphed along an axis for the angle each 1-dimensional projection.
The Radon transform is related to the CT scanner's recordings of x-ray beam attenuation. In fact, a CT scanner creates a Radon transform of a physical target. There is one minor distinction to note here. The value of an x-ray beam attenuation through a target is exponential. To make the x-ray recordings equivalent to a Radon transform density projection you would need to take the log of the recorded x-ray values. I use the Radon transform to simulate the set of 1-dimensional projections I might get from a CT scanner. Since I'm generating the Radon transform directly from the image, not using real x-ray recording values, I don't need to take the log of the values.
Johann Radon also showed that if you have a sinogram of a target then you can reconstruct an approximation of the original target with an inverse Radon transform. This simply overlays each 1-dimensional projection over each other.
The following are crude examples of filtered back projection that do not show how this technique would actually be implemented. In particular, I don't actually do filtering part of filtered back projection, so this is just back projection. In the real world the image data would be processed and filtered in the frequency domain (usually after taking the FFT). These examples demonstrate how far you can get with simple tools.
In the following example the 1-dimensional projections of the target are made using only 45 degree rotations of the target image. Each projection is shown located at an angle from which it was generated relative to the target.
After adding the four 1-dimensional projections together (composite overlay) you get the following CT image:
As you can see, using only 90 degree projections does not give very good results. The more sections you use the better you can approximate the original image. I found that I needed to use 8 projections to even begin to get a recognizable image. The following example is generated from 8 projections:
Here is CT image made from 32 radial sections. 32 seems to be a good number for a CT image at this resolution:
This simple algorithm will work with very complex images. Given a photograph I synthesized 32 1-dimensional scans and then regenerated the photograph using the CT algorithm.
Here are the results using the Shepp-Logan Phantom test The Shepp-Logan Phantom is standard test image used in tomography literature to illustrate the quality of reconstruction algorithms. It's the "Lena" test image of the 3D imaging community. I would have chosen Lena Söderberg instead.
Electronic sources of x-rays generate polychromatic beams. That means the photons have a broad spectrum of energy (frequencies). This causes distortions when raw data from these sources is used in a CT reconstruction.
Why is this bad? Remember the 1-dimensional projection recordings are assumed to measure the attenuation of the x-ray beam through the target. Attenuation is exponential for x-ray photons of a single energy. The photos are either absorbed or transmitted by the same amount through a material of a given density. Photons of a different energy will be absorbed or transmitted by a different amount. If the attenuation measurement is made up of the combined attenuation of many different photo energy levels then measurement is no longer exponential. It is no longer possible to convert to a simple density projection by taking the log.
The effect will be a bogus artifact that makes it appear as if the outer edges of a target are more dense than internal features. Internal features can be totally lost.
One way to correct for this is to filter the x-ray source. This is fairly easy to achieve by having the x-ray beam first pass through a metal plate designed to filter out the lower energy photos while allowing high energy photons to continue. Thus the x-ray photons that do hit the target will be of a greater proportion of high energy photons. This narrows the spectrum, causing the attenuation recordings to more closely follow an exponential curve or at least a continuous function. Copper or Aluminum plates of various thicknesses are often used as filters.
It is difficult to filter for this effect using a software mapping from the recorded attenuation values to an exponential curve because there will not be a continuous relationship between density and attenuation. The attenuation function will change based on angle and the density of the materials involved in the attenuation. The entire premise of CT reconstruction is based on the fact that materials of different densities will always attenuate the beam by the same amount.
physical process control variables
peak kilovoltage (kVp) is the highest voltage supplied to the x-ray emitter. This sets the upper bound on the x-ray photon energy emitted. X-ray photons below this level will still be emitted, but none above this level will be emitted. This peak effects the radiographic contrast.
radiographic contrast refers to the difference between the number of x-ray photons that the target absorbs versus the number that effect the detector. High energy x-rays will penetrate farther. The effects of energy and target composition are complex. Sometimes better image contrast can be obtained with lower energy levels, but that might also require long exposures or higher radiographic density. Very high energy x-rays may zip right through a low density target. Even with very short exposures you may not get enough contrast between the target and background to form good image details. In general high energy x-rays lower contrast, but may be necessary to penetrate a dense or thick object or to produce an image using a faster exposure time than a lower energy source. This is important with live targets where you want to limit damage from radiation exposure. In fact, filters are often used in front of the target to remove low-energy x-rays from the spectrum since these only add useless radiation exposure to the target and will not contribute information to the image.
radiographic density refers to the number of x-ray photons emitted by the x-ray emitter that make it to the detector. This is mostly controlled by the current supplied to the x-ray tube. The higher the current the more photons you get (higher radiographic density). The photons are not weaker or stronger. In general, raising current will emit more x-ray photons with the same spectrum and peak kilovoltage energy level. The peak kilovoltage also contributes a smaller portion to the radiographic density. High energy x-ray photons produce more scattering. These scattered photons may actually hit the detector and so increase the radiographic density. The downside is that if you are trying to form an image these photons only add useless noise because they were scattered from their original direction.
x-ray vs. gamma
X-rays and gamma rays are basically the same thing -- photons. The distinctions between when to use one term versus another is not standardized. Often the term gamma ray refers to photons that come from the atomic nucleus (nuclear decay, annihilation, fusion, etc.), and the term x-ray refers to photons that come from interactions with electrons. Generally, gamma photons are higher energy than x-ray photons, but this is not a rule. Some radioactive isotopes emit gamma photons when they decay that have lower energy than small, diagnostic x-ray machines. There are linear accelerators that emit megavolt photons using a process essentially no different than a small, diagnostic x-ray machines.
Bismuth germanate (BGO)
- Name: Bismuth germanate
- Note: Not used for imaging. Used as a scintillator detector.
- Chemical Composition: Bi4Ge3O12
- Peak Wavelength: 480 nm
- Name: Cesium iodide
- Note: highly hygroscopic!. Less light spread than gadolinium oxysulfide, but not as bright. Used in x-ray image intensifiers and CT scanners.
- Chemical Composition: CsI, CsI:Na+, CsI:Tl+
- Peak Wavelength: 545 nm (Green)
- Decay Time: 5 µs
Gadolinium oxysulfide (GOS)
- Name: Gadolinium oxysulfide, or gadolinium sulfoxylate, P43 (EIA) or GY (WTDS)
- Note: Excellent scintillator for x-rays < 250nm. More light spread than cesium iodide. Usually Terbium activated (rarely Praseodymium activated).
- Chemical Composition: Gd2O2S:Tb
- Peak Wavelength: 545 nm (Green), Chromaticity Coordinates=(0.344, 0.568)
- Decay Time: 1ms to 10%
- Quantum Yield (photons/eV/electron): 0.05
- Emission Efficiency: 13%
- Absorption: K-edge @ 50.22 keV
- Effective atomic #: 59.5
- Vendor Brands: 3M Trimax 12, Agfa Curix Ortho Regular, Agfa Curix Ortho Fast, Fuji HR Fast, Kodak Lanex Fast, Kodak Min-R 2190 screen (used for mammography; high-contrast, low dose), MCI Optonix Green 600, Soyee Green Ultra (800 speed) (also known as KG-8 Green), Soyee Green Special (400 speed)
- Name: Yttrium silicate, P47 (EIA) or BH (WTDS)
- Note: Fast decay
- Chemical Composition: Y2SiO5:Ce3+
- Peak Wavelength: 400nm (Violet-blue), Chromaticity Coordinates=(0.173, 0.088)
- Decay Time: 55ns
- Quantum Yield (photons/eV/electron): 0.055
- EIA- Electronics Industries Association of the USA.
- WTDS- Worldwide Phosphor Type Declaration System.
The "x-ray man" in San Francisco Bay View Shipyard
He used to rent space from HomerLea-at-aol-dot-com. I met him a couple times. I forget his name.
Small diagnostic x-ray heads: 60 kVp to 80 kVp
Mammography x-ray Mo/Mo tube (molybdenum target and molybdenum filter): 35 kVp, The characteristic radiation of molybdenum peaks at 18 (Ka) and 20 keV (Kb). The molybdenum target gives a narrow spectrum in the 18.20 keV range, which combined with the molybdenum filter cuts the peak abruptly at 20 keV.
x-ray head construction
Most small x-ray machines combine the high voltage step-up transformer and circuitry and the x-ray emitter tube into a single, sealed, and insulated unit called the head. So when a dentist aims the x-ray head at your mouth remember that single unit contains most of the essential parts of the x-ray machine. Everything else is just timing and power control. The power feed into the x-ray head typically consists of a minimum of a Ground line, a Filament Heater line, and a Tube Emitter line, so that is three wires minimum. Some units may also have a few lines that return power from the transformer secondary to sense that the head is powered up and ready. The power feed lines are almost always AC. The Filament Heater line drives a filament inside the emitter tube which is exactly like a light bulb filament. The Filament Heater line usually carries from 1.5 VAC to 12 VAC at less than 10 watts. The Emitter line typically carries between 90 VAC and 350 VAC. It is not meant to drive much power, but they will shock you. The Emitter' AC power is stepped up to 50000 to 110000 Volts inside the head. Sometimes this is rectified to DC, but often it is left as AC. X-ray tubes operate in DC mode, but many also function as a thermionic diode, so they automatically rectify AC into DC. Many older, smaller heads make use of this effect, so you won't find any other rectifying circuitry in the head. In effect, the x-ray beam will pulse or flicker at half the AC frequency, which is half of 60 Hz in the US. Old high power systems used separate Kenotron rectifier tubes and giant inductors and capacitors to smooth the power. These Kenotron tubes look a bit like emitter tubes. You would only find these in giant machines found in hospitals. Often the floor and frame of the building had to be specially constructed to support the weight. Modern small x-ray machine use high-frequency switching power supplies that output clean DC and reduce transformer weight.
On some units the Filament Heater line comes on before the Emitter power in order to preheat the filament. If the unit indicates READY this usually means that it sees power going to the Filament Heater. When you trigger the machine a timer relay then sends power to the Emitter line. The timer will automatically shut off the relay after a precise interval even if you do not release the trigger. In fact, usually you must hold the trigger closed the entire time until the timer shuts off the Emitter; otherwise, power is cut as soon as you release the trigger... On most machines all of the settings do little more than adjust the time the relay stays on. Some machines allow you to adjust Emitter voltage and Filament Heater power.
If you have a bare tube available you can see the filament glow a bright cherry red. Usually it is not a bright, white glow like a real light bulb. Again, most do not glow like a light bulb. If it glows that brightly then you may be burning the filament. Check the specs for the tube.
Ritter x-ray heads
I have some experience working with Ritter units. They are typically rated at 70 to 80 kV. They are a bit heavy, but they are built like a tank. They have very little head leakage.
The J-series heads are filled with Sulfur hexafluoride dielectric gas. Generally you never need to open the heads, but it is impossible to open and service the heads without letting this gas escape. The head will almost certainly not function without the dielectric gas. It may be possible to drill and tap two holes in the head for fill and drain holes. These could then be used to refill the head with a dielectric oil, or even refill with Sulfur hexaflouride. The heads are filled at the factory without any gas fittings, so attempting to refill them in a small shop would be difficult without modifying the head with gas fittings. Oil would be easier if one is going through the trouble of adding fittings. Of course, oil is messy.
insulating oil bath
High voltage dielectric insulating oil: Dow Corning 710 silicone oil
Mineral oil works.
Motor oil is bad. Probably the detergent additives ruin the insulating properties. Used motor oil is a terrible idea -- fine suspended carbon and metal particles are not known for enhancing insulation properties.
1 Sievert (1 Sv) = 100 rem
1 millisievert (1 mSv) = 0.001 Sv = 100 mrem = 0.1 rem
1 microsievert (1 μSv) = 0.000001 Sv = 0.1 mrem
The conventional units for the Sievert time derivative is mSv/h (millisievert per hour).
Acute Radiation Doses
0 -- 250 mSv: No symptoms of injury are felt. No signs of injury.
250 -- 1000 mSv (1 Sievert): Nausea and loss of appetite. Possible damage to bone marrow, lymph nodes and spleen.
1000 -- 3000 mSv (3 Sieverts): Nausea, loss of appetite. Possible risk of infection; severe bone marrow, lymph node, and spleen damage. Most, but not all, recover from injuries.
3000 -- 6000 mSv (6 Sieverts): Nausea, loss of appetite. Hemorrhaging, infection, diarrhea, skin peeling. Death without hospitalization. Note: LD50 after 30 days is 5000 mSv. That is, you have a 50% chance of death within a month if exposed to 5000 mSv.
6000 -- 10000 mSv (10 Sieverts): Nausea, loss of appetite. Hemorrhaging, infection, diarrhea, skin peeling, central nervous system impairment. Death is likely even with hospitalization.
> 10000 mSv (10 Sieverts): Incapacitation followed by death.
Average hourly individual background radiation dose: 0.00023 mSv/h (0.023 mrem) = 0.00552 mSv/day
Dental radiography: 0.005 mSv (equivalent to one full day of average background radiation)
Brain CT Scan: 0.8 -- 5 mSv (equivalent to one full year of average background radiation)
Chest CT scan: 6 -- 18 mSv (equivalent to three full years of average background radiation)
ICRP recommended limit for nuclear disaster volunteers: 500 mSv
ICRP recommended limit for nuclear disaster volunteers while rescuing lives: 1000 mSv
Granite countertop: -- (Granite contains Uranium)
Brazil nut: -- One of the most naturally radioactive foods. The tree concentrates natural Radium from the roots into the fatty seeds.
Banana: -- Concentrates Potassium. All natural Potassium contains a small percentage of radioactive isotope.
Potato: -- Concentrates Potassium. All natural Potassium contains a small percentage of radioactive isotope.
- Radon gas is the number two cause of lung cancer in the US.
1/16th inch = 1.5875 mm
Generally attenuation decreases with energy level, so use the kVp (peak kilovolt) value to determine the shield thickness to block the desired percentage of photons. Photon energy levels below the kVp will be blocked even more.
A non-intuitive fact of shielding is that the attenuation depends only on the energy level. Higher power will mean more photons, but the same percentage will be blocked.
For kVp = 80 kV
- 0.01 mm Pb: 25% x-ray photons attenuated (shielded, blocked, absorbed, etc.)
- 0.04 mm Pb: 55%
- 0.10 mm Pb: 70%
- 0.125 mm Pb: 80%
- 0.25 mm Pb: 96%
- 0.35 mm Pb: 97%
- 0.50 mm Pb: 99%
- 1.00 mm Pb: >99%
So 1.5875 mm (1/16th inch) lead sheet should be sufficient for a medium sized dental x-ray head of 80 kV.
Second International Congress of Radiology Recommended Thickness of Lead Shielding for X-ray Rooms
Note, this is for backscatter radiation only. Direct beam-line should terminate into a much thicker sink.
|kVp||thickness millimeters||thickness inches||weight in pounds per square foot|
|75||1.0||0.039 (go with 1/16")||2-1/2|
|100||1.5||0.059 (go with 1/16")||4|
|125||2.0||0.079 (go with 1/8")||5|
|150||2.5||0.098 (go with 1/8")||7|
|175||3.0||0.118 (go with 1/8")||8|
|200||4.0||0.157 (go with 1/4")||10|
|225||5.0||0.197 (go with 1/4")||13|
|300||9.0||0.354 (go with 1/2")||24|
|400||15.0||0.591 (go with 3/4")||38|
|500||22.0||0.866 (go with 1")||56|
|600||34.0||1.343 (go with 1-1/2")||81|
|900||51.0||2.000 (go with 2")||120|
Half Value Layer calculations
- Formula to get the total attenuation for a given number of half-value layers where n = number of half-value layers
- attenuation coefficient, µ = 2-n
- Formula to get the n number of half-value layers needed to attenuate by the given attenuation coefficient, µ
- n = -log2(µ) or n = - ln(µ) / ln(2)
|Half-Value Layer, mm (inch)|
|Peak Voltage (kVp)||Lead||Concrete|
|50||0.06 mm (0.002")||4.32 mm (0.170")|
|100||0.27 mm (0.010")||15.10 mm (0.595")|
|150||0.30 mm (0.012")||22.32 mm (0.879")|
|200||0.52 mm (0.021")||25.00 mm (0.984")|
|250||0.88 mm (0.035")||28.00 mm (1.102")|
|300||1.47 mm (0.055")||31.21 mm (1.229")|
|400||2.50 mm (0.098")||33.00 mm (1.299")|
|1000||7.90 mm (0.311")||44.45 mm (1.750")|
X-Ray Mass Attenuation Coefficients
X-ray mass attenuation coefficients for select elements.
See also the NIST values of the mass attenuation coefficient, μ/ρ, and the mass energy-absorption coefficient, μen/ρ, as a function of photon energy.
atomic number "Z", Element, atomic number to mass "Z/A", mean excitation energy "I" (eV), Density "ρ" (g/cm3) 4, Be Beryllium, 0.44384, 63.7, 1.848E+00 12, Mg Magnesium, 0.49373, 156.0, 1.740E+00 13, Al Aluminum, 0.48181, 166.0, 2.699E+00 14, Si Silicon, 0.49848, 173.0, 2.330E+00 22, Ti Titanium, 0.45948, 233.0, 4.540E+00 26, Fe Iron, 0.46556, 286.0, 7.874E+00 28, Ni Nickel, 0.47708, 311.0, 8.902E+00 29, Cu Copper, 0.45636, 322.0, 8.960E+00 30, Zn Zinc, 0.45879, 330.0, 7.133E+00 47, Ag Silver, 0.43572, 470.0, 1.050E+01 50, Sn Tin, 0.42120, 488.0, 7.310E+00 56, Ba Barium, 0.40779, 491.0, 3.500E+00 64, Gd Gadolinium, 0.40699, 591.0, 7.900E+00 74, W Tungsten, 0.40250, 727.0, 1.930E+01 78, Pt Platinum, 0.39984, 790.0, 2.145E+01 79, Au Gold, 0.40108, 790.0, 1.932E+01 80, Hg Mercury, 0.39882, 800.0, 1.355E+01 82, Pb Lead, 0.39575, 823.0, 1.135E+01 83, Bi Bismuth, 0.39717, 823.0, 9.747E+00 92, U Uranium, 0.38651, 890.0, 1.895E+01
Miniature X-Ray Generator with Pyroelectric Crystal Heating and cooling of the pyroelectric crystal LiNbO3 causes it to emit electrons. When these strike a copper target the target will emit x-rays through bremsstrahlung emission. Radius Health is working on a more sophisticated device that uses the same principle.
Lohmann x-ray tubes - "German engineering" may be a cliché, but no other phrase comes to my mind after I held one of these x-ray tubes. I only wish their web site had more pictures.
- Pyroelectric X-Ray Generator, J. D. Brownridge. Nature, vol. 358, 287-288 (1992)
- Time Dependence of X-Ray Yield From Two Crystal X-Ray Generators, S. M. Shafroth, W. Kruger, J. D. Brownridge, Nucl. Inst. Methods in Physics Research, A422 (1999), Proceeding of the ninth Symposium on Radiation Measurements and Applications, Univ. Michigan, Ann Arbor, May 11-14, 1998
- Investigation of Pyroelectric Generation of X-Rays, J. D. Brownridge and Sol Raboy, J. Appl. Phys., 86, 640 (1999)
- J.D. Brownridge, S.F. Shafroth "Electron and Positive Ion Beams and X-rays Produced by Heated and Cooled Pyroelectric Crystals such as LiNbO3 and LitaO3 in Dilute Gases: Phenomenology and Applications,"
- Pressure Dependence of Energetic (=160 keV) Focused Electron Beams Arising From Heated or Cooled (LiNbO3) Pyroelectric Crystals, James D. Brownridge and Stephen M Shafroth. Appl. Phys. Lett. 83, 1477(2003)
- Information presented at CAARI 2004 in Fort Worth, TX, October 10-15, 2004
J. R. Hird, C. G. Camara, and S. J. Putterman, A triboelectric x-ray source, Appl. Phys. Lett., 2011, 98 (13).
A more complex example
The real world of x-rays is not so simple. In the experiments above, I actually synthesize the radial sections by averaging all the pixels in the rows. This roughly approximates how an x-ray reveals average density of a line through the target. But in the real world there can be materials inside the target that are so dense that they totally block x-ray energy. This reconstruction technique assumes that every part of a target is at least somewhat transparent. If there are parts of a target that are totally opaque even to x-rays then this will result in ambiguous, hidden sections. These hidden sections not only hide what is inside of them, but they also cause shadows that distort areas outside.
The following target is similar to the one used before except that it now has a screen added. The algorithm that synthesizes the radial sections was modified to treat any red are as totally opaque. The result is that anything inside the cup shaped screen is totally hidden. The dense area also throws off the contrast so that it is difficult to see the notch at the top of the target, but you can more or less make it out. These artifacts are known as computed tomography streak artifacts. They are seen in human subjects with metal implants.
The image that results from the composite of the 1D sections has very low contrast. It is simple to expand the dynamic range of the image, but also note that the contrast is weighted towards the center. This is because the radial sections favor the center of the image. The center of the target has the most overlapping sections so the pixels near the center contribute more signal to the average. It's difficult to apply a uniform contrast enhancement over the entire image because the result will leave the edges too dark or the center too light. What is needed is contrast enhancement that will be weighted based on the distance from the center of the image.
This is a rough draft of the source code written in Python. It requires the PIL module for image manipulation.
Here is a more sophisticated implementation cat-py.
My future efforts will probably use matplotlib.
Click here to download: cat_scanner.py <include src="/home/noahspurrier/noah.org/engineering/src/python/x-ray_cat_scan/cat_scanner.py" highlight="python" />