Image Processing and Acquisition using Python provides readers with a sound foundation in both image acquisition and image processing―one of the first books to integrate these topics together. By improving readers’ knowledge of image acquisition techniques and corresponding image processing, the book will help them perform experiments more effectively and cost efficiently as well as analyze and measure more accurately. Long recognized as one of the easiest languages for non-programmers to learn, Python is used in a variety of practical examples.
A refresher for more experienced readers, the first part of the book presents an introduction to Python, Python modules, reading and writing images using Python, and an introduction to images. The second part discusses the basics of image processing, including pre/post processing using filters, segmentation, morphological operations, and measurements. The second part describes image acquisition using various modalities, such as x-ray, CT, MRI, light microscopy, and electron microscopy. These modalities encompass most of the common image acquisition methods currently used by researchers in academia and industry.
Features
• Covers both the physical methods of obtaining images and the analytical processing methods required to understand the science behind the images.
• Contains many examples, detailed derivations, and working Python examples of the techniques.
• Offers practical tips on image acquisition and processing.
• Includes numerous exercises to test the reader’s skills in Python programming and image processing, with solutions to selected problems, example programs, and images available on the book’s web page.
New to this edition
• Machine learning has become an indispensable part of image processing and computer vision, so in this new edition two new chapters are included: one on neural networks and the other on convolutional neural networks.
• A new chapter on affine transform and many new algorithms.
• Updated Python code aligned to the latest version of modules.
Author(s): Ravishankar Chityala, Sridevi Pudipeddi
Series: Chapman & Hall/CRC The Python Series
Edition: 2
Publisher: Chapman and Hall/CRC
Year: 2020
Language: English
Commentary: True PDF
Pages: 451
City: Boca Raton, FL
Tags: Machine Learning; Neural Networks; Image Processing; OpenCV; Image Analysis; Python; Convolutional Neural Networks; Parallel Programming; NumPy; matplotlib; Magnetic Resonance Imaging; Fourier Transform; Filtering; Image Morphing; Image Segmentation; X-Ray; DICOM; image; Image Acquisition; Computed Tomography; Electron Microscopy; Light Microscopy
Cover
Half Title
Series Page
Title Page
Copyright Page
Dedication
Contents
Foreword
Preface
Preface to the First Edition
Introduction
Authors
List of Symbols and Abbreviations
Part I: Introduction to Images and Computing using Python
1. Introduction to Python
1.1 Introduction
1.2 What Is Python?
1.3 Python Environments
1.3.1 Python Interpreter
1.3.2 Anaconda Python Distribution
1.4 Running a Python Program
1.5 Basic Python Statements and Data Types
1.5.1 Data Structures
1.5.2 File Handling
1.5.3 User-Defined Functions
1.6 Summary
1.7 Exercises
2. Computing using Python Modules
2.1 Introduction
2.2 Python Modules
2.2.1 Creating Modules
2.2.2 Loading Modules
2.3 Numpy
2.3.1 Numpy Array or Matrices?
2.4 Scipy
2.5 Matplotlib
2.6 Python Imaging Library
2.7 Scikits
2.8 Python OpenCV Module
2.9 Summary
2.10 Exercises
3. Image and Its Properties
3.1 Introduction
3.2 Image and Its Properties
3.2.1 Bit-Depth
3.2.2 Pixel and Voxel
3.2.3 Image Histogram
3.2.4 Window and Level
3.2.5 Connectivity: 4 or 8 Pixels
3.3 Image Types
3.3.1 JPEG
3.3.2 TIFF
3.3.3 DICOM
3.4 Data Structures for Image Analysis
3.5 Reading, Writing and Displaying Images
3.5.1 Reading Images
3.5.2 Reading DICOM Images using pyDICOM
3.5.3 Writing Images
3.5.4 Writing DICOM Images using pyDICOM
3.5.5 Displaying Images
3.6 Programming Paradigm
3.7 Summary
3.8 Exercises
Part II: Image Processing using Python
4. Spatial Filters
4.1 Introduction
4.2 Filtering
4.2.1 Mean Filter
4.2.2 Median Filter
4.2.3 Max Filter
4.2.4 Min Filter
4.3 Edge Detection using Derivatives
4.3.1 First Derivative Filters
4.3.1.1 Sobel Filter
4.3.1.2 Prewitt Filter
4.3.1.3 Canny Filter
4.3.2 Second Derivative Filters
4.3.2.1 Laplacian Filter
4.3.2.2 Laplacian of Gaussian Filter
4.4 Shape Detecting Filter
4.4.1 Frangi Filter
4.5 Summary
4.6 Exercises
5. Image Enhancement
5.1 Introduction
5.2 Pixel Transformation
5.3 Image Inverse
5.4 Power Law Transformation
5.5 Log Transformation
5.6 Histogram Equalization
5.7 Contrast Limited Adaptive Histogram Equalization (CLAHE)
5.8 Contrast Stretching
5.9 Sigmoid Correction
5.10 Local Contrast Normalization
5.11 Summary
5.12 Exercises
6. Affine Transformation
6.1 Introduction
6.2 Affine Transformation
6.2.1 Translation
6.2.2 Rotation
6.2.3 Scaling
6.2.4 Interpolation
6.3 Summary
6.4 Exercises
7. Fourier Transform
7.1 Introduction
7.2 Definition of Fourier Transform
7.3 Two-Dimensional Fourier Transform
7.3.1 Fast Fourier Transform using Python
7.4 Convolution
7.4.1 Convolution in Fourier Space
7.5 Filtering in the Frequency Domain
7.5.1 Ideal Lowpass Filter
7.5.2 Butterworth Lowpass Filter
7.5.3 Gaussian Lowpass Filter
7.5.4 Ideal Highpass Filter
7.5.5 Butterworth Highpass Filter
7.5.6 Gaussian Highpass Filter
7.5.7 Bandpass Filter
7.6 Summary
7.7 Exercises
8. Segmentation
8.1 Introduction
8.2 Histogram-Based Segmentation
8.2.1 Otsu's Method
8.2.2 Renyi Entropy
8.2.3 Adaptive Thresholding
8.3 Region-Based Segmentation
8.3.1 Watershed Segmentation
8.4 Contour-Based Segmentation
8.4.1 Chan-Vese Segmentation
8.5 Segmentation Algorithm for Various Modalities
8.5.1 Segmentation of Computed Tomography Image
8.5.2 Segmentation of MRI Image
8.5.3 Segmentation of Optical and Electron Microscope Images
8.6 Summary
8.7 Exercises
9. Morphological Operations
9.1 Introduction
9.2 History
9.3 Dilation
9.4 Erosion
9.5 Grayscale Dilation and Erosion
9.6 Opening and Closing
9.7 Grayscale Opening and Closing
9.8 Hit-or-Miss
9.9 Thickening and Thinning
9.9.1 Skeletonization
9.10 Summary
9.11 Exercises
10. Image Measurements
10.1 Introduction
10.2 Labeling
10.3 Hough Transform
10.3.1 Hough Line
10.3.2 Hough Circle
10.4 Template Matching
10.5 Corner Detector
10.5.1 FAST Corner Detector
10.5.2 Harris Corner Detector
10.6 Summary
10.7 Exercises
11. Neural Network
11.1 Introduction
11.2 Introduction
11.3 Mathematical Modeling
11.3.1 Forward Propagation
11.3.2 Back-Propagation
11.4 Graphical Representation
11.5 Neural Network for Classification Problems
11.6 Neural Network Example Code
11.7 Summary
11.8 Exercises
12. Convolutional Neural Network
12.1 Introduction
12.2 Convolution
12.3 Maxpooling
12.4 LeNet Architecture
12.5 Summary
12.6 Exercises
Part III: Image Acquisition
13. X-Ray and Computed Tomography
13.1 Introduction
13.2 History
13.3 X-Ray Generation
13.3.1 X-Ray Tube Construction
13.3.2 X-Ray Generation Process
13.4 Material Properties
13.4.1 Attenuation
13.4.2 Lambert-Beer Law for Multiple Materials
13.4.3 Factors Determining Attenuation
13.5 X-Ray Detection
13.5.1 Image Intensifier
13.5.2 Multiple-Field II
13.5.3 Flat Panel Detector (FPD)
13.6 X-Ray Imaging Modes
13.6.1 Fluoroscopy
13.6.2 Angiography
13.7 Computed Tomography (CT)
13.7.1 Reconstruction
13.7.2 Parallel-Beam CT
13.7.3 Central Slice Theorem
13.7.4 Fan-Beam CT
13.7.5 Cone-Beam CT
13.7.6 Micro-CT
13.8 Hounsfield Unit (HU)
13.9 Artifacts
13.9.1 Geometric Misalignment Artifacts
13.9.2 Scatter
13.9.3 Offset and Gain Correction
13.9.4 Beam Hardening
13.9.5 Metal Artifacts
13.10 Summary
13.11 Exercises
14. Magnetic Resonance Imaging
14.1 Introduction
14.2 Laws Governing NMR and MRI
14.2.1 Faraday's Law
14.2.2 Larmor Frequency
14.2.3 Bloch Equation
14.3 Material Properties
14.3.1 Gyromagnetic Ratio
14.3.2 Proton Density
14.3.3 T1 and T2 Relaxation Times
14.4 NMR Signal Detection
14.5 MRI Signal Detection or MRI Imaging
14.5.1 Slice Selection
14.5.2 Phase Encoding
14.5.3 Frequency Encoding
14.6 MRI Construction
14.6.1 Main Magnet
14.6.2 Gradient Magnet
14.6.3 RF Coils
14.6.4 K-Space Imaging
14.7 T1, T2 and Proton Density Image
14.8 MRI Modes or Pulse Sequence
14.8.1 Spin Echo Imaging
14.8.2 Inversion Recovery
14.8.3 Gradient Echo Imaging
14.9 MRI Artifacts
14.9.1 Motion Artifact
14.9.2 Metal Artifact
14.9.3 Inhomogeneity Artifact
14.9.4 Partial Volume Artifact
14.10 Summary
14.11 Exercises
15. Light Microscopes
15.1 Introduction
15.2 Physical Principles
15.2.1 Geometric Optics
15.2.2 Numerical Aperture
15.2.3 Diffraction Limit
15.2.4 Objective Lens
15.2.5 Point Spread Function (PSF)
15.2.6 Wide-Field Microscopes
15.3 Construction of a Wide-Field Microscope
15.4 Epi-Illumination
15.5 Fluorescence Microscope
15.5.1 Theory
15.5.2 Properties of Fluorochromes
15.5.3 Filters
15.6 Confocal Microscopes
15.7 Nipkow Disk Microscopes
15.8 Confocal or Wide-Field?
15.9 Summary
15.10 Exercises
16. Electron Microscopes
16.1 Introduction
16.2 Physical Principles
16.2.1 Electron Beam
16.2.2 Interaction of Electron with Matter
16.2.3 Interaction of Electrons in TEM
16.2.4 Interaction of Electrons in SEM
16.3 Construction of EMs
16.3.1 Electron Gun
16.3.2 Electromagnetic Lens
16.3.3 Detectors
16.4 Specimen Preparations
16.5 Construction of the TEM
16.6 Construction of the SEM
16.7 Factors Determining Image Quality
16.8 Summary
16.9 Exercises
Appendix A: Process-Based Parallelism using Joblib
A.1 Introduction to Process-Based Parallelism
A.2 Introduction to Joblib
A.3 Parallel Examples
Appendix B: Parallel Programming using MPI4Py
B.1 Introduction to MPI
B.2 Need for MPI in Python Image Processing
B.3 Introduction to MPI4Py
B.4 Communicator
B.5 Communication
B.5.1 Point-to-Point Communication
B.5.2 Collective Communication
B.6 Calculating the Value of PI
Appendix C: Introduction to ImageJ
C.1 Introduction
C.2 ImageJ Primer
Appendix D: Matlab® and Numpy Functions
D.1 Introduction
Bibliography
Index