You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
969 B
30 lines
969 B
import cv2 |
|
import numpy as np |
|
|
|
def main(): |
|
img = cv2.imread('hello_iso_gb.png') |
|
if img is None: |
|
print("Error: Could not load hello_iso_gb.png") |
|
return |
|
|
|
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) |
|
h, w = gray.shape |
|
print(f"Image dimensions: {w}x{h}") |
|
|
|
# Print all unique gray values on screen |
|
unique_vals = np.unique(gray) |
|
print(f"Unique gray values: {unique_vals}") |
|
|
|
# Find all contours in the image |
|
contours, _ = cv2.findContours(gray, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) |
|
|
|
print("\nAll non-trivial contours:") |
|
for idx, cnt in enumerate(contours): |
|
x, y, rw, rh = cv2.boundingRect(cnt) |
|
area = cv2.contourArea(cnt) |
|
# Filter out screen-sized or tiny noise contours |
|
if 4 <= area <= 10000: |
|
print(f"Contour {idx}: x={x}, y={y}, w={rw}, h={rh}, area={area}, center=({x + rw/2}, {y + rh/2})") |
|
|
|
if __name__ == '__main__': |
|
main()
|
|
|