12 KiB
ចាប់យករូបភាព - ឧបករណ៍ IoT អេឡិចត្រូនិចមួយជាការស្រដៀង
ក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែមកាមេរ៉ាទៅឧបករណ៍ IoT អេឡិចត្រូនិចកញ្ចប់របស់អ្នក ហើយអានរូបភាពពីវា។
ឧបករណ៍ផ្នែករឹង
ឧបករណ៍ IoT អេឡិចត្រូនិចកញ្ចប់នឹងប្រើកាមេរ៉ាស្មាតដែលបញ្ចូនរូបភាពពីឯកសារឬពីកាមេរ៉ា Webcam របស់អ្នក។
បន្ថែមកាមេរ៉ាទៅ CounterFit
ដើម្បីប្រើកាមេរ៉ាស្មាត អ្នកត្រូវបន្ថែមមួយទៅកម្មវិធី CounterFit
ភារកិច្ច - បន្ថែមកាមេរ៉ាទៅ CounterFit
បន្ថែមកាមេរ៉ាទៅកម្មវិធី CounterFit។
-
បង្កើតកម្មវិធី Python ថ្មីមួយលើកុំព្យូទ័ររបស់អ្នកនៅក្នុងថតបណ្ដុំពីឈ្មោះ
fruit-quality-detectorដែលមានឯកសារតែមួយឈ្មោះapp.pyនិងបរិស្ថាន Python ស្មាតមួយ ហើយបន្ថែមកញ្ចប់ pip របស់ CounterFit។⚠️ អ្នកអាចយោងទៅកាន់ ការណែនាំសម្រាប់បង្កើត និងកំណត់គម្រោង Python CounterFit ក្នុងមេរៀនទី 1 ប្រសិនបើត្រូវការ។
-
តម្លើងកញ្ចប់ Pip បន្ថែមមួយ ដើម្បីដំឡើង shim នៃ CounterFit ដែលអាចនិយាយជាមួយឧបករណ៍សញ្ញាពីកាមេរ៉ាតាមរយៈការសុបទុកមួយចំនួននៃ កញ្ចប់ Picamera Pip។ សូមធានាថាអ្នកកំពុងដំឡើងនេះពី terminal ដែលបើកបរិស្ថាន Python ស្មាត។
pip install counterfit-shims-picamera -
ធានាថាកម្មវិធីបណ្ដាញ CounterFit កំពុងដំណើរការ
-
បង្កើតកាមេរ៉ា៖
-
នៅក្នុងប្រអប់ Create sensor ក្នុងផ្ទាំង Sensors ចុចប្រអប់ Sensor type ហើយជ្រើស Camera។
-
កំណត់ Name ទៅជា
Picamera -
អនុញ្ញាតប៊ូតុង Add ដើម្បីបង្កើតកាមេរ៉ា
កាមេរ៉ានឹងត្រូវបង្កើត ហើយបង្ហាញក្នុងបញ្ជីឧបករណ៍សញ្ញា។
-
កម្មវិធីកាមេរ៉ា
ឧបករណ៍ IoT អេឡិចត្រូនិចកញ្ចប់អាចត្រូវបានកម្មវិធីដើម្បីប្រើកាមេរ៉ាស្មាតឥឡូវនេះ។
ភារកិច្ច - កម្មវិធីកាមេរ៉ា
កម្មវិធីឧបករណ៍។
-
ធានាថាកម្មវិធី
fruit-quality-detectorបានបើកក្នុង VS Code -
បើកឯកសារ
app.py -
បន្ថែមកូដខាងក្រោមនៅលើសិប្បនិម្មិត
app.pyដើម្បីភ្ជាប់កម្មវិធីទៅCounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000) -
បន្ថែមកូដខាងក្រោមទៅឯកសារ
app.pyរបស់អ្នក:import io from counterfit_shims_picamera import PiCameraកូដនេះនាំចូលបណ្ណាល័យមួយចំនួនដែលចាំបាច់ រួមទាំង
PiCameraចេញពីបណ្ណាល័យ counterfit_shims_picamera។ -
បន្ថែមកូដខាងក្រោមនៅខាងក្រោមនេះសម្រាប់ចាប់ផ្តើមកាមេរ៉ា:
camera = PiCamera() camera.resolution = (640, 480) camera.rotation = 0កូដនេះបង្កើតអ объект PiCamera, កំណត់កំណត់ភាពអេក្រង់ទៅ 640x480។ ទោះបីជាការកំណត់កម្រិតខ្ពស់ជាងនេះគាំទ្រតែម៉ាស៊ីនចម្លាក់រូបភាពធ្វើការដោយប្រើរូបភាពតូចជាងគេ (227x227) ដូច្នេះមិនចាំបាច់ចាប់យករូបភាពធំនិងផ្ញើទេ។
បន្ទាត់
camera.rotation = 0កំណត់ការបង្វិលរូបភាពជាចំណុចដឺក្រេ។ ប្រសិនបើអ្នកត្រូវការបង្វិលរូបភាពពី webcam ឬឯកសារ សូមកំណត់តាមលំដាប់ដែលត្រឹមត្រូវ។ ឧទាហរណ៍ ប្រសិនបើអ្នកចង់ផ្លាស់ប្តូររូបភាពធ្លាក់ធ្ងន់ពី webcam នៅក្នុងរបៀបដល់ផ្ទាំងទៅជា ទេសភាពជាបញ្ឈរ សូមកំណត់camera.rotation = 90។ -
បន្ថែមកូដខាងក្រោមនៅខាងក្រោមនេះសម្រាប់ចាប់យករូបភាពជា ទិន្នន័យឌីជីថល:
image = io.BytesIO() camera.capture(image, 'jpeg') image.seek(0)កូដនេះបង្កើតអោយមានវត្ថុ
BytesIOដើម្បីផ្ទុកទិន្នន័យឌីជីថល។ រូបភាពត្រូវបានអានពីកាមេរ៉ាជា ឯកសារ JPEG ហើយរក្សាទុកក្នុងវត្ថុនេះ។ វត្ថុនេះមានសាច់ទីកន្លែងដើម្បីដឹងថាវានៅក្នុងទិន្នន័យនៅជ្រួលណា ដូច្នេះ បន្ទាត់image.seek(0)នេះគឺផ្លាស់ទីកន្លែងនេះវិញទៅដើម ដូច្នេះទិន្នន័យទាំងអស់អាចត្រូវបានអាននៅពេលក្រោយ។ -
ខាងក្រោមនេះ បន្ថែមកូដខាងក្រោមសម្រាប់រក្សាទុករូបភាពទៅឯកសារ:
with open('image.jpg', 'wb') as image_file: image_file.write(image.read())កូដនេះបើកឯកសារផ្ទុកឈ្មោះ
image.jpgសម្រាប់ការសរសេរ បន្ទាប់មកអានទិន្នន័យទាំងអស់ពីវត្ថុBytesIOហើយសរសេរទៅឯកសារ។💁 អ្នកអាចចាប់យករូបភាពដោយផ្ទាល់ទៅឯកសារតាមរយៈការផ្តល់ឈ្មោះឯកសារទៅលើ
camera.capture។ មូលហេតុដែលប្រើវត្ថុBytesIOគឺដើម្បីឱ្យក្នុងមេរៀននេះ អ្នកអាចផ្ញើរូបភាពទៅអ្នកចាត់ក្រុមរូបភាពរបស់អ្នកនៅពេលក្រោយ។ -
កំណត់រូបភាពដែលកាមេរ៉ានៅ CounterFit នឹងចាប់យក។ អ្នកអាចកំណត់ Source ទៅជា File បន្ទាប់មកផ្ញើឯកសាររូបភាព ឬកំណត់ Source ទៅជា WebCam ហើយរូបភាពនឹងត្រូវបានចាប់ពីកាមេរ៉ាវេប។ សូមធានាថាអ្នកបានជ្រើសប៊ូតុង Set បន្ទាប់ពីជ្រើសរើសរូបភាព ឬកម្ចាប់កាមេរ៉ាវេបរបស់អ្នក។
-
រូបភាពមួយនឹងត្រូវចាប់យក និងរក្សាទុកជាឯកសារឈ្មោះ
image.jpgនៅក្នុងថតបច្ចុប្បន្ន។ អ្នកនឹងឃើញឯកសារនេះក្នុងកម្មវិធី VS Code Explorer។ ជ្រើសឯកសារដើម្បីមើលរូបភាព។ ប្រសិនបើវាត្រូវការបង្វិល សូមធ្វើបច្ចុប្បន្នភាពបន្ទាត់camera.rotation = 0ដោយសមរម្យ ហើយថតរូបផ្សេងទៀត។
💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត code-camera/virtual-iot-device។
😀 កម្មវិធីកាមេរ៉ារបស់អ្នកបានជោគជ័យ!
ការព្រមាន៖
ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI Co-op Translator ។ ខណៈពេលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមនៅក្នុងភាសាម្តងដែលមានរូបភាពត្រូវបានរាប់បញ្ចូលជាទីប្រឹក្សាផ្លូវការជាថ្មីមួយ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមប្រើការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ខុស ឬការបកប្រែខុសចេញពីការប្រើប្រាស់ការបកប្រែនេះទេ។


