Სარჩევი:
- ნაბიჯი 1: სათაურის ფაილები
- ნაბიჯი 2: ვიდეოს გადაღება
- ნაბიჯი 3: ჩარჩოს აღება და ფერის განსაზღვრა
- ნაბიჯი 4: ნიღაბი და მოპოვება
- ნაბიჯი 5: საბოლოოდ ჩვენება
- ნაბიჯი 6: დემო
ვიდეო: მარტივი ფერის გამოვლენა OpenCV გამოყენებით: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:16
გამარჯობა! დღეს მე ვაპირებ ვაჩვენო მარტივი მეთოდი ფერადი ვიდეოდან, OpenCV და პითონის გამოყენებით.
ძირითადად, მე უბრალოდ შევამოწმებ საჭირო ფერს ფონის ჩარჩოში ყოფნა თუ არა და OpenCV მოდულების გამოყენებით მე შევამ mask ამ რეგიონს და ერთდროულად ვაჩვენებ ჩარჩოს.
ნაბიჯი 1: სათაურის ფაილები
ახლა აქ მე გამოვიყენე ორი სათაურის ფაილი, კერძოდ cv2 და NumPy. ძირითადად cv2 არის OpenCV ბიბლიოთეკა, რომელიც იტვირთება ყველა c ++ ფაილს, რაც მნიშვნელოვანია კოდებში ბრძანებების გამოყენებისას (ის შეიცავს ყველა განსაზღვრებას).
და Numpy არის პითონის ბიბლიოთეკა, რომელიც აუცილებელია მრავალგანზომილებიანი მასივის შესანახად. ჩვენ ვიყენებთ ჩვენი ფერის დიაპაზონის კოორდინატების შესანახად.
და numpy როგორც np ძირითადად ეხმარება ჩვენს კოდს ოდნავ შეამციროს np გამოყენებით numpy ნაცვლად ყოველ ჯერზე.
ნაბიჯი 2: ვიდეოს გადაღება
ეს საკმაოდ მარტივია პითონის გამოყენებისას. აქ ჩვენ უბრალოდ უნდა ჩავრთოთ ვიდეო ჩამწერი ისე, რომ მან დაიწყოს ჩარჩოების ჩაწერა.
ახლა VideoCapture– ის მნიშვნელობა მიუთითებს კამერაზე, ჩემს შემთხვევაში კამერა დაკავშირებულია ჩემს ლეპტოპთან, ასე რომ 0.
თქვენ შეგიძლიათ წადი 1 -ის მსგავსად მეორადი კამერისთვის და ასე შემდეგ. VideoCapture ქმნის ობიექტს მისთვის.
ნაბიჯი 3: ჩარჩოს აღება და ფერის განსაზღვრა
ახლა აქ ჩვენ უნდა გავაკეთოთ რაღაც ისე, რომ ჩვენ შეგვიძლია გადავიღოთ ვიდეოს მყისიერი ჩარჩო, რაც დაგვეხმარება სურათის ამოღებაში და ჩვენ შეგვიძლია ვიმუშაოთ ამაზე მოთხოვნის შესაბამისად.
"while" მარყუჟი დაგვეხმარება მარყუჟის გაშვებაში ჩვენი მოთხოვნის დროში. ახლა "_, frame = cap.read ()" გამოიყენება გადაღებული ჩარჩოს მოქმედების შესამოწმებლად და შესანახად. "cap.read () არის ლოგიკური ცვლადი და ბრუნდება true, თუ ჩარჩო სწორად არის წაკითხული და თუ არ მიიღებთ ჩარჩოებს ის არ აჩვენებს შეცდომას, თქვენ უბრალოდ მიიღებთ None.
ახლა მე -11 და მე -12 ხაზები ძირითადად განსაზღვრავს ფერის დიაპაზონს, რომელიც ჩვენ გვჭირდება. ამისათვის მე შევეჩვიე ლურჯ ფერს.
თქვენ შეგიძლიათ გააგრძელოთ ნებისმიერი ფერი, რისთვისაც თქვენ უნდა ჩაწეროთ BGR მნიშვნელობები ამ კონკრეტული ფერისთვის. უმჯობესია განვსაზღვროთ ორი მასივი numpy მასივების გამოყენებით, რადგან რეალურ სამყაროში კონკრეტული ფერის გამოვლენა არ ემსახურება ჩვენს მიზანს, არამედ ჩვენ განვსაზღვრავთ ცისფერი ფერის დიაპაზონს, რათა ის აღმოაჩინოს დიაპაზონში.
ამისათვის მე განვსაზღვრე ორი ცვლადი, რომელიც ინახავს ქვედა BGR და ზედა BGR მნიშვნელობებს.
ნაბიჯი 4: ნიღაბი და მოპოვება
ახლა აქ ჩნდება ჩარჩოს დაფარვის და ჩარჩოს ფერის ამოღების მთავარი ამოცანა. ნიღბის გასაკეთებლად გამოვიყენე ბიბლიოთეკაში არსებული წინასწარ განსაზღვრული ბრძანებები OpenCV– ში. ძირითადად შენიღბვა არის ჩარჩოს გარკვეული ნაწილის ამოღების პროცესი, ანუ ჩვენ ამოვიღებთ პიქსელებს, რომელთა ფერი BGR მნიშვნელობებია, რომლებიც არ არის განსაზღვრულ ფერის დიაპაზონში და ეს კეთდება cv2.inRange- ის მიერ. ამის შემდეგ, ჩვენ ვიყენებთ ფერის დიაპაზონს ნიღბიან გამოსახულებაზე, რაც დამოკიდებულია პიქსელის მნიშვნელობებზე და ამისათვის ჩვენ გამოვიყენებთ cv2.bitwise_and, ის უბრალოდ მიანიჭებს ფერებს ნიღბიან რეგიონს ნიღბის და ფერის დიაპაზონის მნიშვნელობების მიხედვით.
ბმული cv2– ისთვის. bitwise_and:
ნაბიჯი 5: საბოლოოდ ჩვენება
აქ მე გამოვიყენე ძირითადი cv2.imshow () თითოეული ჩარჩოს გამოსახულების გამოსახატავად. ვინაიდან მე მაქვს ცვლადებში შენახული ჩარჩო მონაცემები, შემიძლია მათი მოძიება imshow () - ში. აქ მე გამოვფინე სამივე ჩარჩო, ორიგინალური, ნიღბიანი და ფერადი.
ახლა ჩვენ უნდა გამოვიდეთ while მარყუჟიდან. ამისათვის ჩვენ შეგვიძლია უბრალოდ განვახორციელოთ cv2.wait. Key (). ძირითადად ის გვეუბნება ლოდინის დროს პასუხის გაცემამდე. ასე რომ, თუ თქვენ გადალახავთ 0 -ს, ის დაელოდება უსასრულოდ და 0xFF გეტყვით, რომ არქიტექტურა არის 64 ბიტიანი. "ord ()" განსაზღვრავს იმ სიმბოლოს, რომელიც დაჭერისას შეასრულებს break ბრძანებას if ბლოკში და ის გამოვა მარყუჟიდან.
შემდეგ cap.release () ხურავს ვიდეო ჩამწერს და cv2.destroyAllWindows () ხურავს ყველა გახსნილ ფანჯარას.
თუ თქვენ გაქვთ რაიმე პრობლემა, გთხოვთ შემატყობინოთ.
ბმული წყაროს კოდზე:
გირჩევთ:
როგორ გამოვიყენოთ ფერის გამოვლენა TCS3200 SkiiiD– ით: 9 ნაბიჯი
როგორ გამოვიყენოთ ფერის გამოვლენა TCS3200 SkiiiD– ით: სახელმძღვანელო, რათა განვავითაროთ ფერი TCS3200 გამოვლენა skiiiD– ით
ფერის გამოვლენა პითონში OpenCV გამოყენებით: 8 ნაბიჯი
ფერის გამოვლენა პითონში OpenCV გამოყენებით: გამარჯობა! ეს ინსტრუქცია გამოიყენება იმის გასარკევად, თუ როგორ უნდა ამოიღოთ კონკრეტული ფერი პითონში გამოსახულიდან openCV ბიბლიოთეკის გამოყენებით. თუ თქვენ ახალი ხართ ამ ტექნიკაში, მაშინ არ ინერვიულოთ, ამ სახელმძღვანელოს ბოლოს თქვენ შეძლებთ თქვენი საკუთარი ფერის პროგრამირებას
ობიექტის გამოვლენა W/ Dragonboard 410c ან 820c OpenCV და Tensorflow– ის გამოყენებით .: 4 ნაბიჯი
ობიექტის გამოვლენა W/ Dragonboard 410c ან 820c OpenCV და Tensorflow– ის გამოყენებით .: ეს ინსტრუქცია აღწერს თუ როგორ უნდა დააინსტალიროთ OpenCV, Tensorflow და მანქანათმცოდნეობის ჩარჩოები Python 3.5– ისთვის, რათა გაუშვათ ობიექტის გამოვლენის პროგრამა
ულდარის მარტივი დამუშავება (ულტრაბგერითი გამოვლენა და დარეკვა): 3 ნაბიჯი
ულდარის მარტივი დამუშავება (ულტრაბგერითი გამოვლენა და დარეკვა): ეს არის მარტივი პროექტი, რომელიც იყენებს Arduino UNO- ს და დამუშავებას მარტივი ლიდარის გასაკეთებლად. Lidar (ასევე მოუწოდა LIDAR, LiDAR და LADAR) არის კვლევის მეთოდი, რომელიც ზომავს მანძილს სამიზნეზე განათებით სამიზნე იმპულსური ლაზერული შუქით და გაზომვით
ფერის გამოვლენა RGB LED– ის გამოყენებით: 4 ნაბიჯი
ფერის გამოვლენა RGB LED– ის გამოყენებით: გსურდათ ოდესმე ობიექტის ფერის გამოვლენის ავტომატური გზა? ობიექტზე გარკვეული ფერის შუქის ანათებით და იმის გადახედვით, თუ რამდენად შუქზე აისახება უკან, შეგიძლიათ თქვათ რა ფერია ობიექტი. მაგალითად, თუ აანთებ წითელ შუქს