Name : KongSieng Meta
Id : 0005481
Answer
Test20.py
import cv2 # Import OpenCV img = cv2.imread('spider.jfif') # Load image if img is None: print("Error") #
Check for load error else: # If loaded successfully hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) #
BGR to HSV rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # BGR to RGB gray = cv2.cvtColor(img,
cv2.COLOR_BGR2GRAY) # BGR to Grayscale
cv2.imshow('Original', img) # Show original cv2.imshow('RGB', rgb) # Show RGB cv2.imshow('Grayscale',
gray) # Show Grayscale cv2.imshow('HSV', hsv) # Show HSV cv2.waitKey(0) # Wait for key press
cv2.destroyAllWindows() # Close windows
Test21.py import cv2 # Import OpenCV import numpy as np # Import NumPy for array manipulation
img = cv2.imread('spider.jfif') # Load image if img is None: print("Error") # Check for load error else: # If
loaded successfully
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # Convert to HSV
lower_blue = np.array() # Lower bound of blue in HSV upper_blue = np.array() # Upper bound of blue in
HSV
mask = cv2.inRange(hsv, lower_blue, upper_blue) # Create mask of blue
pixels res = cv2.bitwise_and(img, img, mask=mask) # Extract blue parts
image (for reference) cv2.imshow('Mask', mask) # Show the mask (white = blue, black
= not blue) cv2.imshow('Result', res) # Show the result (only blue parts visible)
cv2.waitKey(0) # Wait for key press cv2.destroyAllWindows() # Close windows Test22.py import cv2 #
Import OpenCV import numpy as np # Import NumPy
img = cv2.imread('spider.jfif') # Load image if img is None: print("Error: Could not load image.") # Check for
errors else:
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # Convert to HSV #
Blue detection
lower_blue = np.array([110, 50, 50]) # Lower blue range upper_blue = np.array([130, 255, 255]) # Upper blue
range mask_blue = cv2.inRange(hsv, lower_blue, upper_blue) # Blue mask res_blue = cv2.bitwise_and(img,
img, mask=mask_blue) # Extract blue
# Red detection lower_red = np.array([0, 50, 50]) # Lower red range (first range) upper_red
= np.array([10, 255, 255]) # Upper red range (first range) mask_red =
cv2.inRange(hsv, lower_red, upper_red) # Red mask (first range) res_red = cv2.bitwise_and(img, img,
mask=mask_red) # Extract red (first range)
cv2.imshow('Original', img) # Show original cv2.imshow('Blue', res_blue) # Show blue result
cv2.imshow('Red', res_red) # Show red result
cv2.waitKey(0) # Wait for key press cv2.destroyAllWindows() # Close windows Test23.py
image = cv2.imread('spider.jfif') # Load the image if image is None: # Check if image loaded correctly
print("Error: Could not load image.") # Print error if load fails else: # If image loaded successfully hsv =
cv2.cvtColor(image, cv2.COLOR_BGR2HSV) #
Convert image to HSV color space
lower_blue = np.array([110, 50, 50]) # Lower bound for blue color upper_blue = np.array([130, 255, 255]) #
Upper bound for blue color
lower_red1 = np.array([0, 50, 50]) # Lower bound for first red range upper_red1 = np.array([10, 255, 255]) #
Upper bound for first red range
lower_red2 = np.array([170, 50, 50]) # Lower bound for second red range (for wraparound) upper_red2 =
np.array([180, 255, 255]) # Upper bound for second red range
mask_blue = cv2.inRange(hsv, lower_blue, upper_blue) # Create mask for blue pixels mask_red1 =
cv2.inRange(hsv, lower_red1, upper_red1) # Create mask for first red range mask_red2 = cv2.inRange(hsv,
lower_red2, upper_red2) # Create mask for second red range mask_red = cv2.bitwise_or(mask_red1,
mask_red2) # Combine red masks (for complete red detection)
mask_combined = cv2.bitwise_or(mask_blue, mask_red) # Combine blue and red masks result_combined =
cv2.bitwise_and(image, image, mask=mask_combined) #
Extract colored regions
cv2.imshow('Original Image', image) # Display the original image
Display blue detection result
cv2.imshow('Red Color Detection', cv2.bitwise_and(image, image, mask=mask_red)) #
Display red detection result
cv2.imshow('Red & Blue Combined', result_combined) # Display combined red and blue result
cv2.waitKey(0) # Wait for a key press cv2.destroyAllWindows() # Close all windows