Abhinav Deshpande
Configure LFS
a176aa6 unverified
Raw
History Blame Contribute Delete
1.62 kB
import cv2
import numpy as np
def detect_low_pixel_values(image, mask, threshold=50):
# Step 1: Apply the mask to the original image (this keeps the fruit area, sets background to black)
masked_image = cv2.bitwise_and(image, image, mask=mask)
# Step 2: Convert the image to grayscale for easier pixel value comparison
gray_masked_image = cv2.cvtColor(masked_image, cv2.COLOR_BGR2GRAY)
# Step 3: Detect low pixel values below the threshold
low_pixel_mask = gray_masked_image < threshold # Pixels below threshold will be True
high_pixel_mask = gray_masked_image > threshold
# Step 4: Convert the result back to an image for visualization
low_pixel_image = np.zeros_like(image) # Create an empty image to highlight low pixel values
low_pixel_image[low_pixel_mask] = [255, 255, 255] # Set low-value pixels to red (for visualization)
dark_pixel_count = np.count_nonzero(low_pixel_mask)/10000 # Number of dark pixels (low pixel values)
# print(f"Number of dark pixels: {dark_pixel_count}")
high_pixel_count = np.count_nonzero(high_pixel_mask)/1000
# print(f"Number of high pixels: {high_pixel_count}")
# Step 5: Display the results
# cv2.imshow("Original Image with Low Pixel Values", low_pixel_image) # Show the highlighted low pixel values
# cv2.imshow("Masked Image", masked_image) # Show the masked image
# cv2.waitKey(0) # Wait for a key press to close the images
# cv2.destroyAllWindows() # Close all OpenCV windows
return high_pixel_count # Return the mask of low pixel values