color detect in grayscale mode template

OpenMV related project discussion.
shadowfiredm
Posts: 1
Joined: Mon Jan 20, 2020 9:00 am

color detect in grayscale mode template

Postby shadowfiredm » Mon Jan 20, 2020 9:12 am

hi
im trying to detect the h,s,u letters and red and yellow colors in grayscale templeate mode for the rescue maze robot
but idk how to detect the red and yellow color in my code (my code is here :

Code: Select all

import time, sensor, image, pyb
from image import SEARCH_EX, SEARCH_DS

# Reset sensor
sensor.reset()

# Set sensor settings
sensor.set_contrast(1)
sensor.set_gainceiling(16)
# Max resolution for template matching with SEARCH_EX is QQVGA
sensor.set_framesize(sensor.QQQVGA)
# You can set windowing to reduce the search image.
#sensor.set_windowing(((640-80)//2, (480-60)//2, 80, 60))
sensor.set_pixformat(sensor.GRAYSCALE)

# Load template.
# Template should be a small (eg. 32x32 pixels) grayscale image.
template = image.Image("/h.pgm")
templateh3 = image.Image("/h2.pgm")
templates = image.Image("/S.pgm")
templates2 = image.Image("/S2.pgm")
templates3 = image.Image("/S3.pgm")
templateh2 = image.Image("/h3.pgm")




clock = time.clock()

# Run template matching
while (True):
    clock.tick()
    img = sensor.snapshot() 
    pyb.LED(1).off()
    pyb.LED(2).off()
    pyb.LED(3).off()
    # find_template(template, threshold, [roi, step, search])
    # ROI: The region of interest tuple (x, y, w, h).
    # Step: The loop step used (y+=step, x+=step) use a bigger step to make it faster.
    # Search is either image.SEARCH_EX for exhaustive search or image.SEARCH_DS for diamond search
    #
    # Note1: ROI has to be smaller than the image and bigger than the template.
    # Note2: In diamond search, step and ROI are both ignored.
    r = img.find_template(template, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60))
    r3 = img.find_template(templateh3, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60))
    s = img.find_template(templates, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60))
    s2 = img.find_template(templates2, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60))
    r2 = img.find_template(templates3, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60))
    s3 = img.find_template(templateh2, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60))

    if r:
        img.draw_rectangle(r)
        pyb.LED(1).on()
        print("HHHHHHHHHHHHHHHH!!!")
    elif r3:
        img.draw_rectangle(r3)
        pyb.LED(1).on()
        print("HHHHHHHHHHHHHHHH!!!")
    elif s:
        img.draw_rectangle(s)
        pyb.LED(2).on()
        print("SSSSSSSSSSSSSSSS!!!")
    elif s2:
        img.draw_rectangle(s2)
        pyb.LED(2).on()
        print("SSSSSSSSSSSSSSSS!!!")
    elif s3:
        img.draw_rectangle(s3)
        pyb.LED(2).on()
        print("SSSSSSSSSSSSSSSS!!!")
    elif r2:
        img.draw_rectangle(r2)
        pyb.LED(1).on()
        print("HHHHHHHHHHHHHHHH!!!")
print(clock.fps())
)
can u help me plz or give me an idea my friends?
User avatar
iabdalkader
Posts: 1085
Joined: Sun May 24, 2015 3:53 pm

Re: color detect in grayscale mode template

Postby iabdalkader » Mon Jan 20, 2020 12:06 pm

The template matching only works on grayscale images, but you can switch the sensor pixel format to color and find the blobs after detecting the template.

Return to “Project Discussion”

Who is online

Users browsing this forum: No registered users and 4 guests