Բովանդակություն:
- Պարագաներ
- Քայլ 1: Գրադարանների ներմուծում
- Քայլ 2. Հետագծերի ստեղծում
- Քայլ 3. Ստեղծեք TrackBars երանգի, հագեցվածության և արժեքի համար
- Քայլ 4: Ինչպես կարդալ և չափափոխել պատկերը
- Քայլ 5. Կարդացեք հետագծի արժեքները `այն պատկերի վրա կիրառելու համար
- Քայլ 6. Պատկերի ցուցադրում և վերին և ստորին սահմանի սահմանում
- Քայլ 7: Այժմ վերջին քայլը
- Քայլ 8: Վերջնական արդյունքներ
Video: Գույնի հայտնաբերում Python- ում OpenCV- ի միջոցով. 8 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Բարեւ Ձեզ! Այս հրահանգը օգտագործվում է այն ուղեցույցի վերաբերյալ, թե ինչպես կարելի է պիթոնում պատկերից վերցնել որոշակի գույն ՝ օգտագործելով openCV գրադարան: Եթե դուք նոր եք այս տեխնիկայում, ապա մի անհանգստացեք, այս ուղեցույցի վերջում դուք կկարողանաք ծրագրավորել ձեր սեփական գույնի հայտնաբերման ծրագիրը:
Ստորև բերված են գործառույթները կամ կարող ենք ասել տեխնիկա, որը դուք կսովորեք, 1. Ինչպես կարդալ պատկերը
2. Ինչպես ստեղծել Track Bars
3. Ինչպես կարգավորել պատկերի երանգը, հագեցվածությունը և արժեքը `օգտագործելով հետագծեր
4. Եվ հետո կլինի ձեր վերջնական արդյունքը
Դուք կարող եք դիտել ելքի տեսանյութը, որը ես կցել եմ ստորև:
Այսպիսով, եկեք սկսենք
Պարագաներ
- Պիթոն 3
- openCV գրադարան
- անհանգիստ գրադարան
Քայլ 1: Գրադարանների ներմուծում
Պատկերը դեղին ferrari- ից է, ինչպես ցույց է տրված, և մենք ծրագրելու ենք այդ պատկերից հանել միայն դեղին գույնը
Առաջին քայլը կլինի մեր գրադարանների ներմուծումը
1. Ներառյալ openCV գրադարանը: Պիթոնում այն կոչվում է cv2
2. Ներառյալ numpy գրադարանը որպես np. «Որպես» -ը թույլ է տալիս մեզ թմրել որպես np, այնպես որ կարիք չկա նորից ու նորից գրել numpy
Քայլ 2. Հետագծերի ստեղծում
Հետագծի ձողերը ստեղծվում են պատկերում երանգի, հագեցվածության և արժեքի արժեքը ճշգրտելու համար:
cv2.namedWindow («TrackBars») Այս տողի ծածկագիրը օգտագործվում է նոր ելքային պատուհան ստեղծելու համար, և պատուհանի անունը տրվում է TrackBars (կարող եք տալ ցանկացած անուն, որը ցանկանում եք)
cv2.resizeWindow («TrackBars», 600, 250) Այս գործառույթը օգտագործվում է պատուհանի չափափոխման համար: «TrackBars» - ը այն պատուհանի համար է, որը ցանկանում եք չափափոխել, քանի որ ես ուզում էի չափսերի չափսերի TrackBars պատուհանը փոխել, ես գրել եմ այդ անունը: Հետևում է երկու ամբողջ թիվ: Այդ երկու ամբողջ թվերն են լայնությունը և բարձրությունը: Չափը փոխելու համար կարող եք խաղալ այդ երկու թվերի հետ
Քայլ 3. Ստեղծեք TrackBars երանգի, հագեցվածության և արժեքի համար
Այժմ մենք կստեղծենք ընդհանուր առմամբ 6 TrackBars երանգի, հագեցվածության և արժեքի համար: Յուրաքանչյուրը կունենա երկու, այսինքն ՝ 1 նվազագույնի համար և 1 առավելագույնի համար: Մենք կօգտագործենք openCV- ի createTrackbar գործառույթը: Սկզբում մենք կտեսնենք այս գործառույթի շարահյուսությունը:
cv2.createTrackbar («WINDOWNAME», «MAINWINDOWNAME», «RANGE»): Սա կարող է շփոթեցնել, բայց մի անհանգստացեք, մենք կանցնենք յուրաքանչյուր քայլի միջով: Հիշեք մի բան, որ openCV- ի երանգների արժեքները 179 են, հագեցվածությունը ՝ 255, արժեքը ՝ 255
1. Ստեղծելով TrackBar երանգի րոպեի համար.
cv2.createTrackbar ("Hue min", "TrackBars", 0, 179, դատարկ)
Այս երանգի րոպեում նշվում է trackbar- ի անունը, TrackBars- ը հիմնական պատուհանն է, 0-ը այն դիրքն է, որի վրա կլինի մեր սահիչը և 179-ը `այն միջակայքը, որը նշանակում է, որ սիլդերը կշարժվի 0-179-ից:
2. Ստեղծելով TrackBar երանգի առավելագույնի համար.
cv2.createTrackbar ("Hue max", "TrackBars", 179, 179, դատարկ)
Այս Hue max- ում նշվում է trackbar- ի անունը, TrackBars- ը հիմնական պատուհանն է, 179-ը այն դիրքն է, որի վրա կլինի մեր սահիչը և 179-ը առավելագույն միջակայքն է, ինչը նշանակում է, որ սիլդերը կտեղափոխվի 179-0-ից:
3. Նմանապես կրկնել քայլերը sat min, sat max, val min և val max- ի համար, ինչպես ցույց է տրված նկարում
Սպիտակ ֆոնով պատկերը ելքային պատկերն է: Այսպիսի տեսք կունենան ձեր հետագծերը
Քայլ 4: Ինչպես կարդալ և չափափոխել պատկերը
cv2.imread () թույլ է տալիս կարդալ պատկերը: Կարևոր մտքերից մեկը պետք է հաշվի առնել, որ ձեր պատկերի գտնվելու վայրը պետք է լինի նույն թղթապանակում, որտեղ ծրագիրը պահվում է: Մենք ներդնելու ենք while loop, քանի որ այն պետք է գործի մինչև պատկերը կարդալը կամ կարող ենք ասել, մինչև պայմանը ճշմարիտ լինի
img = cv2.imread ("ferrari.jpg")
- Դրանում ես ստեղծել եմ «img» փոփոխական անուն, որում պահում եմ պատկերը
- Cv2.imread- ի ներսում գրեք պատկերի անունը դրա ընդլայնմամբ `կրկնակի մեջբերումով
Պատկերը չափափոխելու համար մենք կօգտագործենք cv2.resize գործառույթը: Այս հատվածը պարտադիր չէ, եթե ցանկանում եք չափափոխել, կարող եք օգտագործել այս գործառույթը
Cv2.resize- ի ներսում նախ գրեք փոփոխականի անունը, որում պահվում է պատկերը, այնուհետև դրա լայնությունը և բարձրությունը:
Քայլ 5. Կարդացեք հետագծի արժեքները `այն պատկերի վրա կիրառելու համար
Լավ, հիմա մենք կարդալու ենք trackbar- ի արժեքները, որպեսզի կարողանանք այն կիրառել մեր պատկերի վրա: Մենք կստանանք արժեքները `օգտագործելով cv2.getTrackbarPos () գործառույթը:
Սկսենք այդ մասից…
h_min = cv2.getTrackbarPos ("Գունավոր րոպե", "TrackBars")
Վերոնշյալ հայտարարության մեջ ես ստեղծում եմ h_min փոփոխական անուն, որում կպահեմ Hue min արժեքը: Այսպիսով, cv2.getTrackbarPos- ի առաջին փաստարկը կլինի «Hue min», քանի որ ես ուզում եմ hue min- ի արժեքները (ուղղագրությունը պետք է լինի նույնը, ինչ ստեղծվում է trackTbarbar գործառույթը), իսկ երկրորդ արգումենտը կլինի trackbar պատուհանի անունը, որին այն պատկանում է:
- Կրկնել նույն գործընթացը h_max- ի և մնացած գործառույթների համար, ինչպես ցույց է տրված վերը նկարում, այնուհետև տպել բոլոր արժեքները ՝ օգտագործելով print ()
- Ելքը ցուցադրվում է երկրորդ նկարում: Այն տպում է h_min, h_max, s_min, s_max, v_min, s_max արժեքները
Քայլ 6. Պատկերի ցուցադրում և վերին և ստորին սահմանի սահմանում
Այժմ մենք ունենք երանգի, հագեցվածության և արժեքի նվազագույն և առավելագույն արժեքը: Այս արժեքը կօգտագործենք պատկերը զտելու համար, որպեսզի կարողանանք պատկերի որոշակի գունային ելքը:
Մենք դրա համար դիմակ կստեղծենք ՝ օգտագործելով cv2.inRange գործառույթը: Իսկ մինչ այդ մենք սահմանելու ենք երանգի, հագեցվածության և արժեքի վերին և ստորին սահմանը
Այսպիսով, ստեղծեք «ստորին» փոփոխականի անուն, և օգտագործելով numpy array գործառույթը, սահմանեք min- ի տիրույթը բոլոր 3 -ի համար հետևյալ կերպ
ավելի ցածր = np.array ([h_min, s_min, v_min])
Կրկնեք նույն քայլը վերին մասի համար
վերին = np.array ([h_max, s_max, v_max])
Այժմ մենք դիմակ կստեղծենք հետևյալ կերպ
դիմակ = cv2.inRange (չափափոխել, ստորին, վերին) cv2.inRang- ի ներսում 1 -ին արգումենտը կլինի այն փոփոխականը, որում պահվում է իմ վերջնական պատկերը, 2 -րդ արգումենը կլինի ստորին սահմանը, իսկ 3 -րդը `վերին սահմանը:
Այժմ մենք պատրաստվում ենք ցուցադրել հիմնական պատկերը և դիմակը: Displayուցադրելու համար մենք կօգտագործենք cv2.imshow () գործառույթը
cv2.imshow («img», չափափոխել) Սա հիմնական պատկերը ցուցադրելու համար է: Առաջին արգումենտն այն պատուհանի անունն է, որը կարող եք տալ ցանկացած անուն
Նմանապես կրկնում ենք դիմակի քայլերը
cv2.imshow («Ելք», դիմակ)
Քայլ 7: Այժմ վերջին քայլը
Այս վերջին քայլում մենք կորոշենք մեքենայի և ցուցադրման գույնը:
Ես ստեղծել եմ փոփոխականի անվան արդյունք: Կրկին կարող եք տալ ցանկացած անուն, որը ցանկանում եք: Այսպիսով, մենք կօգտագործենք cv2.bitwise_and () գործառույթը, որում մենք միասին կավելացնենք պատկերներին և կստեղծենք նոր պատկեր: Եվ որտեղ էլ որ երկու պատկերի պիքսելներն առկա լինեն, դա ընդունելու է որպես այո կամ «1»:
արդյունք = cv2.bitwise_and (չափափոխել, չափափոխել, դիմակ = դիմակ)
- Սրանում 1 -ին փաստարկը կլինի մեր պատկերը
- 2 -րդ փաստարկը կլինի նաև մեր սկզբնական պատկերը, որին կհետեւի կիրառված դիմակը, որը մենք ստեղծել էինք նախկինում
- Եվ վերջապես պարզապես ցուցադրեք արդյունքը ՝ օգտագործելով ցուցադրման գործառույթը
Պարզապես պատճենեք, տեղադրեք այս վերջին քայլը, դա պարզապես ուշացում է, և դուք կարող եք դուրս գալ ելքային պատուհանից `սեղմելով« a »ստեղնաշարի վրա
Քայլ 8: Վերջնական արդյունքներ
Խորհուրդ ենք տալիս:
Ինչպես կատարել դիպչող դռան զանգ, մարմնի ջերմաստիճանի հայտնաբերում, GY-906, 433 ՄՀց Arduino- ի միջոցով. 3 քայլ
Ինչպես կատարել դիպչող դռան զանգ, մարմնի ջերմաստիճանի հայտնաբերում, GY-906, 433 ՄՀց Arduino- ի միջոցով. Այսօր մենք կանենք դիպչող դռան զանգ, այն կբացահայտի ձեր մարմնի ջերմաստիճանը: Այժմյան իրավիճակում շատ կարևոր է իմանալ, թե արդյոք մարմնի ջերմաստիճանը նորմայից բարձր է, երբ ինչ -որ մեկը ծաղրում է: Այս նախագիծը կարմիր լույս կներկայացնի, եթե հայտնաբերվի որևէ
Պարզ գույնի հայտնաբերում OpenCV- ի միջոցով. 6 քայլ
Պարզ գույնի հայտնաբերում OpenCV- ի միջոցով. Բարև: Այսօր ես ցույց կտամ OpenCV- ի և python- ի միջոցով կենդանի տեսանյութից գույնը հայտնաբերելու մի պարզ մեթոդ: Հիմնականում ես պարզապես կփորձեմ անհրաժեշտ գույնը առկա է հետին պլանում կամ ոչ, և OpenCV մոդուլների միջոցով դիմակավորելու եմ այդ տարածաշրջանը և
Lizard Terrarium- ի մոնիտորինգ Adosia IoT WiFi Controller- ի միջոցով + Շարժման հայտնաբերում. 17 քայլ (նկարներով)
Lizard Terrarium- ի մոնիտորինգ Adosia IoT WiFi Controller + Motion Detect- ի միջոցով. Այս ձեռնարկում մենք ձեզ ցույց կտանք, թե ինչպես կարելի է կառուցել պարզ մողեսային տերարիում մի բուռ մաշկված ձվերի համար, որոնք մենք պատահաբար հայտնաբերել և անհանգստացրել ենք դրսում այգեգործության ընթացքում: Մենք ցանկանում ենք, որ ձվերը ապահով դուրս գան, ուստի այն ամենը, ինչ մենք կանենք, պլաստիկի միջոցով ապահով տարածք ստեղծելն է
Օբյեկտի հայտնաբերում W/ Dragonboard 410c կամ 820c OpenCV- ի և Tensorflow- ի միջոցով. 4 քայլ
Օբյեկտի հայտնաբերում W/ Dragonboard 410c կամ 820c OpenCV- ի և Tensorflow- ի միջոցով. Այս հրահանգները նկարագրում են, թե ինչպես տեղադրել OpenCV, Tensorflow և մեքենայական ուսուցման շրջանակներ Python 3.5 – ի համար ՝ օբյեկտների հայտնաբերման ծրագիրը գործարկելու համար:
Գույնի հայտնաբերում RGB LED- ի միջոցով. 4 քայլ
Գույնի հայտնաբերում RGB LED- ի միջոցով. Երբևէ ցանկացե՞լ եք օբյեկտի գույնը հայտնաբերելու ավտոմատացված եղանակ: Փայլելով որոշակի գույնի առարկայի վրա և նայելով, թե որքան լույս է հետադարձվում, կարող եք ասել, թե ինչ գույնի է առարկան: Օրինակ, եթե կարմիր լույս եք վառում