6.3 KiB
Kupiga Picha - Vifaa vya IoT vya Kijumla
Katika sehemu hii ya somo, utaongeza kihisi cha kamera kwenye kifaa chako cha IoT cha kijumla, na kusoma picha kutoka kwake.
Vifaa
Kifaa cha IoT cha kijumla kitakuwa na kamera iliyosimuliwa ambayo inatuma picha kutoka kwa faili au kamera yako ya wavuti.
Ongeza kamera kwenye CounterFit
Ili kutumia kamera ya kijumla, unahitaji kuongeza moja kwenye programu ya CounterFit.
Kazi - ongeza kamera kwenye CounterFit
Ongeza Kamera kwenye programu ya CounterFit.
-
Unda programu mpya ya Python kwenye kompyuta yako ndani ya folda inayoitwa
fruit-quality-detector
yenye faili moja inayoitwaapp.py
na mazingira ya kijumla ya Python, na ongeza vifurushi vya pip vya CounterFit.⚠️ Unaweza kurejelea maelekezo ya kuunda na kusanidi mradi wa Python wa CounterFit katika somo la 1 ikiwa inahitajika.
-
Sakinisha kifurushi cha ziada cha Pip ili kusanidi shim ya CounterFit inayoweza kuzungumza na vihisi vya Kamera kwa kusimulia baadhi ya kifurushi cha Pip cha Picamera. Hakikisha unasakinisha hiki kutoka kwenye terminal yenye mazingira ya kijumla yakiwa yamewashwa.
pip install counterfit-shims-picamera
-
Hakikisha programu ya wavuti ya CounterFit inaendelea kufanya kazi.
-
Unda kamera:
-
Katika kisanduku cha Create sensor kwenye paneli ya Sensors, shusha kisanduku cha Sensor type na uchague Camera.
-
Weka Name kuwa
Picamera
. -
Chagua kitufe cha Add ili kuunda kamera.
Kamera itaundwa na itaonekana kwenye orodha ya vihisi.
-
Programu ya Kamera
Kifaa cha IoT cha kijumla sasa kinaweza kupangwa kutumia kamera ya kijumla.
Kazi - panga kamera
Panga kifaa.
-
Hakikisha programu ya
fruit-quality-detector
imefunguliwa kwenye VS Code. -
Fungua faili ya
app.py
. -
Ongeza msimbo ufuatao juu ya
app.py
ili kuunganisha programu na CounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Ongeza msimbo ufuatao kwenye faili yako ya
app.py
:import io from counterfit_shims_picamera import PiCamera
Msimbo huu huingiza baadhi ya maktaba muhimu, ikiwemo darasa la
PiCamera
kutoka kwenye maktaba ya counterfit_shims_picamera. -
Ongeza msimbo ufuatao chini ya huu ili kuanzisha kamera:
camera = PiCamera() camera.resolution = (640, 480) camera.rotation = 0
Msimbo huu huunda kitu cha PiCamera, huweka azimio kuwa 640x480. Ingawa azimio la juu zaidi linaweza kutumika, kigeuzi cha picha hufanya kazi na picha ndogo zaidi (227x227) kwa hivyo hakuna haja ya kupiga na kutuma picha kubwa zaidi.
Mstari wa
camera.rotation = 0
huweka mzunguko wa picha kwa nyuzi. Ikiwa unahitaji kuzungusha picha kutoka kamera ya wavuti au faili, weka hii ipasavyo. Kwa mfano, ikiwa unataka kubadilisha picha ya ndizi kwenye kamera ya wavuti katika hali ya mlalo kuwa wima, wekacamera.rotation = 90
. -
Ongeza msimbo ufuatao chini ya huu ili kupiga picha kama data ya binary:
image = io.BytesIO() camera.capture(image, 'jpeg') image.seek(0)
Msimbo huu huunda kitu cha
BytesIO
kuhifadhi data ya binary. Picha inasomwa kutoka kwenye kamera kama faili ya JPEG na kuhifadhiwa kwenye kitu hiki. Kitu hiki kina kiashiria cha nafasi ili kujua kiko wapi kwenye data ili data zaidi iweze kuandikwa mwishoni ikiwa inahitajika, kwa hivyo mstari waimage.seek(0)
unarudisha nafasi hii mwanzoni ili data yote iweze kusomwa baadaye. -
Chini ya hii, ongeza yafuatayo ili kuhifadhi picha kwenye faili:
with open('image.jpg', 'wb') as image_file: image_file.write(image.read())
Msimbo huu hufungua faili inayoitwa
image.jpg
kwa kuandika, kisha husoma data yote kutoka kwenye kitu chaBytesIO
na kuiandika kwenye faili.💁 Unaweza kupiga picha moja kwa moja kwenye faili badala ya kitu cha
BytesIO
kwa kupitisha jina la faili kwenye wito wacamera.capture
. Sababu ya kutumia kitu chaBytesIO
ni ili baadaye katika somo hili uweze kutuma picha kwa kigeuzi chako cha picha. -
Sanidi picha ambayo kamera kwenye CounterFit itapiga. Unaweza kuweka Source kuwa File, kisha kupakia faili ya picha, au kuweka Source kuwa WebCam, na picha zitapigwa kutoka kwenye kamera yako ya wavuti. Hakikisha unachagua kitufe cha Set baada ya kuchagua picha au kuchagua kamera yako ya wavuti.
-
Picha itapigwa na kuhifadhiwa kama
image.jpg
kwenye folda ya sasa. Utaona faili hii kwenye kivinjari cha VS Code. Chagua faili ili kuona picha. Ikiwa inahitaji kuzungushwa, sasisha mstari wacamera.rotation = 0
kama inavyohitajika na piga picha nyingine.
💁 Unaweza kupata msimbo huu kwenye folda ya code-camera/virtual-iot-device.
😀 Programu yako ya kamera imefanikiwa!
Kanusho:
Hati hii imetafsiriwa kwa kutumia huduma ya kutafsiri ya AI Co-op Translator. Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuzingatiwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu ya binadamu inapendekezwa. Hatutawajibika kwa kutoelewana au tafsiri zisizo sahihi zinazotokana na matumizi ya tafsiri hii.