Comprehensive Guide to Human Visual System and Image Processing Techniques
Human Visual System (HVS)
Optic Nerve: Shifts approximately 5 degrees towards the temple.
Cornea: Acts as the primary refractive surface of the eye.
Iris: Controls the size of the pupil.
Pupil: Serves as an aperture, regulating the amount of light entering the eye.
Retina: Receives wavelengths between 380-950 nm.
Visible Spectrum: Humans can see wavelengths between 380-770 nm, with greater sensitivity to red than blue. Approximately 70-85% of white light reaches the retina.
Lens: Allows for focus by changing its curvature.
Wavelength Absorption: In a young eye, the cornea absorbs most radiation below 300 nm, and the lens filters out wavelengths below 380 nm.
Photoreceptor Cells:
- Rods: Cylindrical in shape and responsible for vision in low light conditions.
- Cones: Conical in shape and responsible for vision in high light conditions, as well as color perception.
Fovea: The central area of the retina responsible for sharp central vision. Contains no rods and a high density of smaller cones.
Cone Types: There are three types of cones, each sensitive to a different range of wavelengths:
- Red Cones: Peak sensitivity around 580 nm.
- Green Cones: Peak sensitivity around 540 nm.
- Blue Cones: Peak sensitivity around 450 nm.
Color Perception: Based on the relative excitation of the three cone types.
Rod Sensitivity: Rods are more sensitive to light across the entire visible spectrum compared to cones.
Rod-Cone Ratio: There are approximately 20 times more rods than cones in the retina.
Projection on Retina:
- Uses a coordinate system where (X, Y, Z) represents a point in 3D space and (x, y) represents its projection on the retina.
- f represents the focal length of the eye.
- Based on similar triangles, the following relationships hold:
- a/f = A/C
- b/f = B/C
- Therefore, (a, b) = (fA/C, fB/C) = f/Z * (X, Y)
- This equation describes how a 3D point is projected onto the 2D surface of the retina.
Binary Image Processing (BIP)
Binary Image Representation:
- 1 represents black.
- 0 represents white.
Image Representation:
- I = [I(i, j)], where I(i, j) represents the pixel intensity at coordinates (i, j).
- Initially, all pixel intensities are set to 0 (white).
Thresholding:
- Converts a grayscale image to a binary image based on a threshold value (T).
- J(i, j) = 0 if I(i, j) >= T (pixel is set to black).
- J(i, j) = 1 if I(i, j) < T (pixel is set to white).
Binary Majority Operation:
- Applicable only for an odd number of input variables.
- The output value is determined by the majority value among the input variables.
Logical Operations:
- Any binary operation can be performed using NOT, AND, and OR gates.
- NOT(I1): Reverses the contrast of image I1 (binary negative).
- AND(I1, I2): Performs a logical AND operation between corresponding pixels of images I1 and I2 (intersection).
- OR(I1, I2): Performs a logical OR operation between corresponding pixels of images I1 and I2 (union).
- XOR(I1, I2): Performs a logical XOR operation, which can be implemented as OR(AND[I2, NOT(I1)], AND[NOT(I2), I1]).
Blob Coloring:
- Assigns a unique region number to connected pixels in a binary image.
- Can be used to identify and analyze individual objects or regions in an image.
Hole Removal:
- Holes within blobs can be removed by identifying regions that are not connected to the largest blob and setting their pixel values to 0.
- Subsequent NOT operation inverts the image, highlighting the filled holes.
Dilation and Erosion:
- Dilation (Expand): Expands the boundaries of black objects in an image.
- Erosion (Shrink): Shrinks the boundaries of black objects in an image.
Window Operations:
- A window is a geometric shape that defines a neighborhood of pixels around a central pixel.
- Window operations involve performing calculations on the pixel values within the window.
- Window size is typically odd to ensure a well-defined central pixel.
Mathematical Representation:
- B*I(i, j) = {I(i-m, j-n); (m, n) in B} represents the set of image pixels covered by the window B when centered at pixel (i, j).
- J(i, j) = G{B*I(i, j)} = G{I(i-m, j-n); (m, n) in B} represents a general window operation, where G is a function applied to the pixel values within the window.
Replication:
- When the window extends beyond the image boundaries, replication is used to fill in missing pixel values.
- Replication involves copying the values of the nearest image pixels.
Dilation Operation:
- J1 = Dilate(I, B) if J1(i, j) = OR{I(i-m, j-n); (m, n) in B}.
- Dilation expands black objects by setting the output pixel to 1 if any pixel within the window is 1.
Erosion Operation:
- J2 = Erode(I, B) if J2(i, j) = AND{I(i-m, j-n); (m, n) in B}.
- Erosion shrinks black objects by setting the output pixel to 1 only if all pixels within the window are 1.
Median Filter:
- J3 = Median(I, B) if J3(i, j) = MAJ{I(i-m, j-n); (m, n) in B}.
- Replaces the central pixel with the median value of the pixels within the window.
- Effective in reducing noise while preserving edges.
Dilation and Erosion Properties:
- Dilation increases the size of black objects and removes holes and gaps.
- Erosion decreases the size of black objects and removes small objects and peninsulas.
- Dilation of black objects is equivalent to erosion of white objects, and vice versa.
- Erosion and dilation are not completely inverse operations.
Median Filter Properties:
- Removes both small objects and holes.
- Generally does not change the size of objects significantly.
- Acts as its own dual: MEDIAN[NOT(I)] = NOT[MEDIAN(I)].
- Smooths the image while preserving edges.
Opening and Closing:
- Opening: Open(I, B) = Dilate[Erode(I, B), B].
- Closing: Close(I, B) = Erode[Dilate(I, B), B].
- Opening removes small objects and noise without affecting larger objects or holes.
- Closing removes small holes and gaps without affecting larger objects or peninsulas.
- Both operations generally preserve the size of objects.
Open-Close and Close-Open:
- Open-Close: Open[Close(I, B), B].
- Close-Open: Close[Open(I, B), B].
- Both operations remove small objects and holes while preserving the overall shape and size of larger objects.
- Open-Close tends to connect neighboring objects.
- Close-Open tends to connect neighboring holes.
Skeletonization:
- Reduces objects in a binary image to their essential”skeleton” or thin representations.
- Iterative Erosion: In = ERODE[…ERODE[I0, B], …B], where n is the number of erosions.
- Maximum Iterations: N = max{n: In * f}, where f represents the empty set (the largest number of erosions before the object disappears).
- Skeleton: SKEL(I0, B) = S1 U S2 U … U Sn, where Sn = In INTERSECT NOT[Open(In, B)].
Image Enhancement Using Point Operations (PO)
Histogram:
- Represents the distribution of pixel intensities in an image.
- Does not contain spatial information about the image.
Average Optical Density (AOD):
- Can be calculated from the histogram using the formula: AOD = (1/N) * Σ[k=0 to L-1] k * H(k), where N is the total number of pixels, L is the number of gray levels, and H(k) is the number of pixels with gray level k.
- Low AOD indicates an underexposed image, while high AOD indicates an overexposed image.
Point Operations:
- Transform each pixel’s intensity independently based on a predefined function.
- J(i, j) = f[I(i, j)], where J(i, j) is the output pixel intensity, I(i, j) is the input pixel intensity, and f is the transformation function.
Contrast Stretching:
- Expands the range of pixel intensities to enhance contrast.
- Example: J(i, j) = P * I(i, j), where P is a constant greater than 1.
Intensity Scaling and Shifting:
- Scales and shifts pixel intensities to adjust brightness and contrast.
- Example: J(i, j) = INT[P * I(i, j) + 0.5], where INT[R] rounds R to the nearest integer.
Gamma Correction:
- Adjusts the nonlinear relationship between pixel values and displayed brightness.
- Example: J(i, j) = I(i, j)γ, where γ is the gamma value.
Note:
placeholder represents an image that was not provided in the original text.