ദർശനം#

ആമുഖം#

VEX EXP-നുള്ള വിഷൻ സെൻസർ കളർ സിഗ്നേച്ചറുകളും കളർ കോഡുകളും കണ്ടെത്തി ട്രാക്ക് ചെയ്യുന്നു. ഇത് വിഷൻ സെൻസറിനെ അതിന്റെ ചുറ്റുപാടുകൾ വിശകലനം ചെയ്യാനും കണ്ടെത്തിയ ദൃശ്യ ഡാറ്റയെ അടിസ്ഥാനമാക്കി പ്രതികരിക്കാനും അനുവദിക്കുന്നു.

ഈ പേജിൽ വിഷൻ സെൻസർ, കളർ സിഗ്നേച്ചർ, കളർ കോഡ് നാമങ്ങൾ എന്നിവയ്ക്ക് യഥാക്രമം vision_1, RED_BOX, BOX_CODE എന്നിവ ഉദാഹരണമായി ഉപയോഗിക്കുന്നു. ആവശ്യാനുസരണം നിങ്ങളുടെ സ്വന്തം കോൺഫിഗർ ചെയ്ത പേരുകൾ ഉപയോഗിച്ച് അവ മാറ്റിസ്ഥാപിക്കുക.

എല്ലാ രീതികളുടെയും ഒരു ലിസ്റ്റ് താഴെ കൊടുക്കുന്നു:

ഗെറ്ററുകൾ - വിഷൻ സെൻസറിൽ നിന്ന് ഡാറ്റ നേടുക.

  • take_snapshot – ഒരു പ്രത്യേക കളർ സിഗ്നേച്ചറിനോ കളർ കോഡിനോ വേണ്ടി ഡാറ്റ ക്യാപ്‌ചർ ചെയ്യുന്നു.

  • largest_object – സ്നാപ്പ്ഷോട്ടിൽ നിന്ന് ഏറ്റവും വലിയ വസ്തു തിരഞ്ഞെടുക്കുക.

  • installed – വിഷൻ സെൻസർ EXP ബ്രെയിനുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടോ എന്ന്.

പ്രോപ്പർട്ടികൾ – take_snapshot ൽ നിന്ന് ലഭിച്ച ഒബ്ജക്റ്റ് ഡാറ്റ.

  • .exists – നിലവിലെ ഡിറ്റക്ഷനിൽ വസ്തു നിലവിലുണ്ടോ എന്ന്.

  • .width – കണ്ടെത്തിയ വസ്തുവിന്റെ വീതി.

  • .height – കണ്ടെത്തിയ വസ്തുവിന്റെ ഉയരം.

  • .centerX – വസ്തുവിന്റെ കേന്ദ്രത്തിന്റെ X സ്ഥാനം.

  • .centerY – വസ്തുവിന്റെ കേന്ദ്രത്തിന്റെ Y സ്ഥാനം.

  • .angle – Orientation of the Color Code.

  • .originX – വസ്തുവിന്റെ മുകളിൽ ഇടത് മൂലയുടെ X സ്ഥാനം.

  • .originY – വസ്തുവിന്റെ മുകളിൽ ഇടത് മൂലയുടെ Y സ്ഥാനം.

കൺസ്ട്രക്‌ടർമാർ - വിഷൻ സെൻസറും അതിന്റെ ഒപ്പുകളും സ്വമേധയാ ഇനീഷ്യലൈസ് ചെയ്‌ത് കോൺഫിഗർ ചെയ്യുക.

  • Vision – ഒരു വിഷൻ സെൻസർ സൃഷ്ടിക്കുന്നു.

  • Signature – ഒരു കളർ ഒപ്പ് സൃഷ്ടിക്കുന്നു.

  • Code – ഒരു കളർ കോഡ് സൃഷ്ടിക്കുന്നു.

ഗെറ്ററുകൾ#

take_snapshot#

take_snapshot വിഷൻ സെൻസർ ഫ്രെയിമിൽ നിന്ന് ഡാറ്റ ഒരു സിംഗിൾ സിഗ്നേച്ചറിലേക്ക് ഫിൽട്ടർ ചെയ്യുന്നു - കോൺഫിഗർ ചെയ്ത കളർ സിഗ്നേച്ചർ അല്ലെങ്കിൽ കളർ കോഡ് പോലുള്ള സെൻസറിന് തിരിച്ചറിയാൻ കഴിയുന്ന ഒന്നിന്റെ സംരക്ഷിച്ച വിവരണം - കൂടാതെ ഒരു ട്യൂപ്പിൾ തിരികെ നൽകുന്നു.

കളർ സിഗ്നേച്ചറുകൾ ഉം കളർ കോഡുകൾ ഉം ഈ രീതി ഉപയോഗിച്ച് ഉപയോഗിക്കുന്നതിന് മുമ്പ് വിഷൻ യൂട്ടിലിറ്റിയിൽ ആദ്യം കോൺഫിഗർ ചെയ്യണം.

സൂചിക 0 മുതൽ വീതി അനുസരിച്ച് ഏറ്റവും വലുത് മുതൽ ചെറുത് വരെ ക്രമീകരിച്ച വസ്തുക്കളെ ട്യൂപ്പിൾ സംഭരിക്കുന്നു. ഓരോ വസ്തുവിന്റെയും പ്രോപ്പർട്ടികൾ അതിന്റെ സൂചിക ഉപയോഗിച്ച് ആക്‌സസ് ചെയ്യാൻ കഴിയും. പൊരുത്തപ്പെടുന്ന വസ്തുക്കളൊന്നും കണ്ടെത്തിയില്ലെങ്കിൽ ഒരു ശൂന്യമായ ട്യൂപ്പിൾ തിരികെ നൽകും.

Usage:
vision_1.take_snapshot(SIGNATURE)

പാരാമീറ്ററുകൾ

വിവരണം

SIGNATURE

നൽകിയിരിക്കുന്ന ഒപ്പിന്റെ ഡാറ്റ മാത്രം ഉൾപ്പെടുത്തുന്നതിനായി ഡാറ്റാസെറ്റ് ഫിൽട്ടർ ചെയ്യുന്നു. ലഭ്യമായ ഒപ്പുകൾ ഇവയാണ്:

  • കളർ സിഗ്നേച്ചറുകൾ അല്ലെങ്കിൽ കളർ കോഡുകൾ - വിഷൻ സെൻസറിന്റെ പേര്, രണ്ട് അടിവരകൾ, തുടർന്ന് കളർ സിഗ്നേച്ചറിന്റെയോ കളർ കോഡിന്റെയോ പേര്. ഉദാഹരണത്തിന്: vision_1__RED_BOX.

# Move forward if a red object is detected
while True:
    red_box = vision_1.take_snapshot(vision_1__RED_BOX)
    if red_box[0].exists:
        drivetrain.drive_for(FORWARD, 10, MM)
    wait(5, MSEC)

വർണ്ണ ഒപ്പുകൾ#

കളർ സിഗ്നേച്ചർ എന്നത് വിഷൻ സെൻസറിന് തിരിച്ചറിയാൻ കഴിയുന്ന ഒരു സവിശേഷ നിറമാണ്. ഈ സിഗ്നേച്ചറുകൾ സെൻസറിനെ അവയുടെ നിറത്തെ അടിസ്ഥാനമാക്കി വസ്തുക്കളെ കണ്ടെത്താനും ട്രാക്ക് ചെയ്യാനും അനുവദിക്കുന്നു. ഒരു കളർ സിഗ്നേച്ചർ കോൺഫിഗർ ചെയ്തുകഴിഞ്ഞാൽ, സെൻസറിന് അതിന്റെ വ്യൂ ഫീൽഡിൽ ആ പ്രത്യേക നിറമുള്ള വസ്തുക്കളെ തിരിച്ചറിയാൻ കഴിയും. നിറമുള്ള വസ്തുക്കളെ തത്സമയം പ്രോസസ്സ് ചെയ്യുന്നതിനും കണ്ടെത്തുന്നതിനും take_snapshot ഉപയോഗിച്ച് കളർ സിഗ്നേച്ചറുകൾ ഉപയോഗിക്കുന്നു.

ഒരു പ്രോജക്റ്റിൽ കോൺഫിഗർ ചെയ്‌ത കളർ സിഗ്നേച്ചർ ഉപയോഗിക്കുന്നതിന്, അതിന്റെ പേര് വിഷൻ സെൻസറിന്റെ പേരും, രണ്ട് അണ്ടർസ്കോറുകളും, തുടർന്ന് കളർ സിഗ്നേച്ചറിന്റെ പേരും ആയിരിക്കണം. ഉദാഹരണത്തിന്: vision_1__RED_BOX.

# Display if any objects match the RED_BOX signature
while True:
    brain.screen.set_cursor(1, 1)
    brain.screen.clear_row(1)
    # Change to any configured Color Signature
    red_box = vision_1.take_snapshot(vision_1__RED_BOX)
    if red_box[0].exists:
        brain.screen.print("Color signature detected!")
        wait(100, MSEC)

കളർ കോഡുകൾ#

ഒരു പ്രത്യേക ക്രമത്തിൽ ക്രമീകരിച്ചിരിക്കുന്ന വർണ്ണ സിഗ്നേച്ചറുകൾ കൊണ്ട് നിർമ്മിച്ച ഒരു ഘടനാപരമായ പാറ്റേണാണ് കളർ കോഡ്. ഈ കോഡുകൾ വിഷൻ സെൻസറിനെ മുൻകൂട്ടി നിശ്ചയിച്ച വർണ്ണ പാറ്റേണുകൾ തിരിച്ചറിയാൻ അനുവദിക്കുന്നു. സങ്കീർണ്ണമായ വസ്തുക്കളെ തിരിച്ചറിയുന്നതിനോ സ്വയംഭരണ നാവിഗേഷനായി അതുല്യമായ മാർക്കറുകൾ സൃഷ്ടിക്കുന്നതിനോ കളർ കോഡുകൾ ഉപയോഗപ്രദമാണ്.

ഒരു പ്രോജക്റ്റിൽ കോൺഫിഗർ ചെയ്‌ത കളർ കോഡ് ഉപയോഗിക്കുന്നതിന്, അതിന്റെ പേര് വിഷൻ സെൻസറിന്റെ പേരും, രണ്ട് അണ്ടർസ്കോറുകളും, തുടർന്ന് കളർ കോഡിന്റെ പേരും ആയിരിക്കണം. ഉദാഹരണത്തിന്: vision_1__BOX_CODE.

# Display if any objects match the BOX_CODE code
while True:
    brain.screen.set_cursor(1, 1)
    brain.screen.clear_row(1)
    # Change to any configured Color Code
    box_code = vision_1.take_snapshot(vision_1__BOX_CODE)
    if box_code[0].exists:
        brain.screen.print("Color code detected!")
        wait(100, MSEC)

largest_object#

take_snapshot ന്റെ ഏറ്റവും പുതിയ ഉപയോഗത്തിൽ നിന്ന് ലഭിച്ച ട്യൂപ്പിളിലെ ഡാറ്റ ലഭിക്കുന്നതിന് largest_object വീണ്ടെടുക്കുന്നു.

ഒരു സൂചിക വ്യക്തമാക്കാതെ തന്നെ ഒരു ട്യൂപ്പിളിൽ നിന്ന് ഏറ്റവും വലിയ ഒബ്ജക്റ്റ് എപ്പോഴും ലഭിക്കാൻ ഈ രീതി ഉപയോഗിക്കാം.

Usage:
vision_1.largest_object()

# Turn slowly until the largest object is centered in
# front of the Vision Sensor
drivetrain.set_turn_velocity(10, PERCENT)
drivetrain.turn(RIGHT)

while True:
    red_box = vision_1.take_snapshot(vision_1__RED_BOX)

    if red_box[0].exists:
        if 140 < vision_1.largest_object().centerX < 180: 
            drivetrain.stop()

    wait(10,MSEC)

installed#

installed വിഷൻ സെൻസർ നിലവിൽ EXP ബ്രെയിനുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടോ എന്ന് സൂചിപ്പിക്കുന്ന ഒരു ബൂളിയൻ തിരികെ നൽകുന്നു.

  • True – വിഷൻ സെൻസർ EXP തലച്ചോറുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു.

  • False – വിഷൻ സെൻസർ EXP തലച്ചോറുമായി ബന്ധിപ്പിച്ചിട്ടില്ല.

Usage:
vision_1.installed()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Display a message if the Vision Sensor is connected
if vision_1.installed():
    brain.screen.print("Vision Sensor Installed!")

പ്രോപ്പർട്ടികൾ#

take_snapshot ഉപയോഗിച്ചതിനുശേഷം ഒരു ട്യൂപ്പിളിൽ സൂക്ഷിച്ചിരിക്കുന്ന ഓരോ ഒബ്‌ജക്റ്റിലും ഉൾപ്പെടുത്തിയിരിക്കുന്ന എട്ട് പ്രോപ്പർട്ടികൾ ഉണ്ട്.

take_snapshot ഉപയോഗിച്ച സമയത്ത്, കണ്ടെത്തിയ വസ്തുവിന്റെ സ്ഥാനവും വലുപ്പവും എല്ലാ പ്രോപ്പർട്ടി മൂല്യങ്ങളും വിഷൻ സെൻസറിന്റെ കാഴ്ചയിൽ വിവരിക്കുന്നു. സെൻസറിന്റെ 316 ബൈ 212 പിക്സൽ റെസല്യൂഷനെ അടിസ്ഥാനമാക്കി, ഈ മൂല്യങ്ങൾ പിക്സലുകളിലാണ് അളക്കുന്നത്.

.exists#

ട്യൂപ്പിളിൽ സൂചിക നിലവിലുണ്ടോ ഇല്ലയോ എന്ന് സൂചിപ്പിക്കുന്ന ഒരു ബൂളിയൻ .exists നൽകുന്നു.

  • True - സൂചിക നിലവിലുണ്ട്.

  • False - സൂചിക നിലവിലില്ല.

# Check if at least one red object is detected
# You will receive an error if no objects are detected

while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    red_objects = vision_1.take_snapshot(vision_1__RED_BOX)

    if red_objects[0].exists:
        brain.screen.print("At least 1")
            
    else:
        brain.screen.print("No red objects")

    wait(0.5, SECONDS)

.width#

.width കണ്ടെത്തിയ വസ്തുവിന്റെ വീതി പിക്സലുകളിൽ നൽകുന്നു, ഇത് 1 നും 316 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയാണ്.

# Move towards a blue object until its width is
# larger than 100 pixels
while True:
    blue_box = vision_1.take_snapshot(vision_1__BLUE_BOX)

    if blue_box[0].exists:
        if blue_box[0].width < 100:
            drivetrain.drive_for(FORWARD, 10, MM)
    else:
        drivetrain.stop()

    wait(50, MSEC)

.height#

.height കണ്ടെത്തിയ വസ്തുവിന്റെ ഉയരം പിക്സലുകളിൽ നൽകുന്നു, ഇത് 1 നും 212 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയാണ്.

# Move towards a blue object until its height is
# larger than 100 pixels
while True:
    blue_box = vision_1.take_snapshot(vision_1__BLUE_BOX)

    if blue_box[0].exists:
        if blue_box[0].height < 100:
            drivetrain.drive_for(FORWARD, 10, MM)
    else:
        drivetrain.stop()

    wait(50, MSEC)

.centerX#

.centerX കണ്ടെത്തിയ വസ്തുവിന്റെ കേന്ദ്രത്തിന്റെ x-കോർഡിനേറ്റ് പിക്സലുകളിൽ നൽകുന്നു, ഇത് 0 നും 316 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയാണ്.

# Turn slowly until the largest blue object is centered
# in front of the Vision Sensor.
drivetrain.set_turn_velocity(10, PERCENT)
drivetrain.turn(RIGHT)

while True:
    blue_box = vision_1.take_snapshot(vision_1__BLUE_BOX)

    if blue_box[0].exists:
        if 140 < vision_1.largest_object().centerX < 180: 
            drivetrain.stop()

    wait(10,MSEC)

.centerY#

.centerY കണ്ടെത്തിയ വസ്തുവിന്റെ കേന്ദ്രത്തിന്റെ y-കോർഡിനേറ്റ് പിക്സലുകളിൽ നൽകുന്നു, ഇത് 0 നും 212 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയാണ്.

# Move towards a blue object until its
# center y-coordinate is more than 140 pixels
while True:
    blue_box = vision_1.take_snapshot(vision_1__BLUE_BOX)

    if blue_box[0].exists:
        if blue_box[0].centerY < 140:
            drivetrain.drive(FORWARD)
    else:
        drivetrain.stop()

    wait(50, MSEC)

.angle#

.angle കണ്ടെത്തിയ വസ്തുവിന്റെ ഓറിയന്റേഷൻ ഡിഗ്രികളിൽ നൽകുന്നു, ഇത് 0 നും 359 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയാണ്.

# Turn left or right depending on how a
# configured box code is rotated
while True: 
    box_code = vision_1.take_snapshot(vision_1__BOX_CODE)

    if box_code[0].exists: 
        if 70 < box_code[0].angle < 110:
            drivetrain.turn_for(RIGHT, 45, DEGREES)
            
        elif 250 < box_code[0].angle < 290:
            drivetrain.turn_for(LEFT, 45, DEGREES)
        
        else:
            drivetrain.stop()

    wait(50, MSEC)

.originX#

.originX കണ്ടെത്തിയ വസ്തുവിന്റെ ബൗണ്ടിംഗ് ബോക്സിന്റെ മുകളിൽ ഇടത് കോണിലുള്ള x-കോർഡിനേറ്റ് പിക്സലുകളിൽ നൽകുന്നു, ഇത് 0 നും 316 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയാണ്.

# Display if a red object is to the
# left or the right
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1,1)
    
    red_box = vision_1.take_snapshot(vision_1__RED_BOX)
    
    if red_box[0].exists:
        if red_box[0].originX < 160:
            brain.screen.print("To the left!")
        else: 
            brain.screen.print("To the right!")

    wait(50, MSEC)

.originY#

.originY കണ്ടെത്തിയ വസ്തുവിന്റെ ബൗണ്ടിംഗ് ബോക്സിന്റെ മുകളിൽ ഇടത് കോണിലുള്ള y-കോർഡിനേറ്റ് പിക്സലുകളിൽ നൽകുന്നു, ഇത് 0 നും 212 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയാണ്.

# Display if a red object is close or far
# from the robot
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1,1)
    
    red_box = vision_1.take_snapshot(vision_1__RED_BOX)

    if red_box[0].exists:
        if red_box[0].originY < 80:
            brain.screen.print("Far")
        else: 
            brain.screen.print("Close")

    wait(50, MSEC)

കൺസ്ട്രക്‌ടർമാർ#

VEXcode-ന് പുറത്ത് വിഷൻ സെൻസർ കോൺഫിഗർ ചെയ്യുന്നതിന് ആവശ്യമായ Vision, Signature, Code ഒബ്‌ജക്റ്റുകൾ സ്വമേധയാ സൃഷ്ടിക്കാൻ കൺസ്ട്രക്‌ടറുകൾ ഉപയോഗിക്കുന്നു.

Vision#

Vision ഒരു വിഷൻ സെൻസർ സൃഷ്ടിക്കുന്നു.

ഉപയോഗം

Vision(smartport, brightness, sigs)

പാരാമീറ്ററുകൾ

വിവരണം

smartport

വിഷൻ സെൻസർ ബന്ധിപ്പിച്ചിരിക്കുന്ന സ്മാർട്ട് പോർട്ട്, Ports.PORTx ഇവിടെ x എന്നത് പോർട്ടിന്റെ നമ്പറാണ്.

brightness

ഓപ്ഷണൽ. വിഷൻ സെൻസറിന്റെ തെളിച്ച മൂല്യം, 1 മുതൽ 100 ​​വരെ.

sigs

ഓപ്ഷണൽ. കോമകൾ (, ) ഉപയോഗിച്ച് വേർതിരിച്ച ഒന്നോ അതിലധികമോ കളർ സിഗ്നേച്ചർ അല്ലെങ്കിൽ കളർ കോഡ് വസ്തുക്കളുടെ പേര്.

# Create the Color Signatures
RED_BOX = Signature(1, 10121, 10757, 10439,-1657, -1223, -1440, 2.5, 1)
BLUE_BOX = Signature(2, -4443, -3373, -3908,6253, 7741, 6997, 2.5, 1)

# Create the Color Code
BOX_CODE = Code(RED_BOX, BLUE_BOX)

"""
Create a Vision Sensor with the following values:
- Port 1
- brightness: 80
- RED_BOX and BOX_CODE signatures
"""
vision_1 = Vision(Ports.PORT1, 80, RED_BOX, BOX_CODE)

Signature#

Signature ഒരു കളർ സിഗ്നേച്ചർ സൃഷ്ടിക്കുന്നു. ഒരു വിഷൻ സെൻസറിൽ ഒരേസമയം ഏഴ് വ്യത്യസ്ത കളർ സിഗ്നേച്ചറുകൾ വരെ സംഭരിക്കാൻ കഴിയും.

ഉപയോഗം:

Signature(index, uMin, uMax, uMean, vMin, vMax, vMean, rgb, type)

പാരാമീറ്റർ

വിവരണം

index

Signature ഒബ്ജക്റ്റിന്റെ സൂചിക, 1 മുതൽ 7 വരെ. കുറിപ്പ്: ഒരേ സൂചിക നമ്പറുള്ള രണ്ട് Signature ഒബ്ജക്റ്റുകൾ സൃഷ്ടിക്കുന്നത് രണ്ടാമത്തെ സൃഷ്ടിച്ച ഒബ്ജക്റ്റ് ആദ്യത്തേതിനെ മറികടക്കാൻ കാരണമാകും.

uMin

വിഷൻ യൂട്ടിലിറ്റിയിൽ uMin ൽ നിന്നുള്ള മൂല്യം.

uMax

വിഷൻ യൂട്ടിലിറ്റിയിലെ uMax ൽ നിന്നുള്ള മൂല്യം.

uMean

വിഷൻ യൂട്ടിലിറ്റിയിൽ uMean ൽ നിന്നുള്ള മൂല്യം.

vMin

വിഷൻ യൂട്ടിലിറ്റിയിൽ vMin ൽ നിന്നുള്ള മൂല്യം.

vMax

വിഷൻ യൂട്ടിലിറ്റിയിൽ vMax ൽ നിന്നുള്ള മൂല്യം.

vMean

വിഷൻ യൂട്ടിലിറ്റിയിൽ vMean ൽ നിന്നുള്ള മൂല്യം.

rgb

വിഷൻ യൂട്ടിലിറ്റിയിൽ rgb ൽ നിന്നുള്ള മൂല്യം.

type

വിഷൻ യൂട്ടിലിറ്റിയിൽ type ൽ നിന്നുള്ള മൂല്യം.

ഒരു കളർ സിഗ്നേച്ചർ സൃഷ്ടിക്കുന്നതിനുള്ള മൂല്യങ്ങൾ ലഭിക്കുന്നതിന്, വിഷൻ യൂട്ടിലിറ്റി ലേക്ക് പോകുക. ഒരു കളർ സിഗ്നേച്ചർ കോൺഫിഗർ ചെയ്തുകഴിഞ്ഞാൽ, കോൺഫിഗറേഷൻ വിൻഡോയിൽ നിന്ന് പാരാമീറ്റർ മൂല്യങ്ങൾ പകർത്തുക.

"""
Create a Color Signature with the following values:
- index: 1
- uMin: 10121
- uMax: 10757
- uMean: 10439
- vMin: -1657
- vMax: -1223
- vMean: -1440
- rgb: 2.5
- type: 1
"""
RED_BOX = Signature(1, 10121, 10757, 10439,-1657, -1223, -1440,2.5, 1)

Code#

Code ഒരു കളർ കോഡ് സൃഷ്ടിക്കുന്നു. ഇത് ഉപയോഗിക്കുന്നതിന് കുറഞ്ഞത് രണ്ട് നിർവചിക്കപ്പെട്ട കളർ സിഗ്നേച്ചറുകളെങ്കിലും ആവശ്യമാണ്. ഒരു വിഷൻ സെൻസറിൽ ഒരേസമയം എട്ട് വ്യത്യസ്ത കളർ കോഡുകൾ വരെ സംഭരിക്കാൻ കഴിയും.

ഉപയോഗം:

Code(sig1, sig2, sig3, sig4, sig5)

പാരാമീറ്റർ

വിവരണം

sig1

മുമ്പ് സൃഷ്ടിച്ച ഒരു കളർ സിഗ്നേച്ചർ.

sig2

മുമ്പ് സൃഷ്ടിച്ച ഒരു കളർ സിഗ്നേച്ചർ.

sig3

ഓപ്ഷണൽ. മുമ്പ് സൃഷ്ടിച്ച കളർ സിഗ്നേച്ചർ.

sig4

ഓപ്ഷണൽ. മുമ്പ് സൃഷ്ടിച്ച കളർ സിഗ്നേച്ചർ.

sig5

ഓപ്ഷണൽ. മുമ്പ് സൃഷ്ടിച്ച കളർ സിഗ്നേച്ചർ.

# Create the Color Signatures
RED_BOX = Signature(1, 10121, 10757, 10439,-1657, -1223, -1440, 2.5, 1)
BLUE_BOX = Signature(2, -4443, -3373, -3908,6253, 7741, 6997, 2.5, 1)

# Create a Color Code with the Color Signatures
BOX_CODE = Code(RED_BOX, BLUE_BOX)