Spaces:
Runtime error
Runtime error
File size: 1,618 Bytes
a176aa6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 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 |