Orodha ya maudhui:
- Hatua ya 1: Piga Picha
- Hatua ya 2: Pakia Picha kwenye MATLAB
- Hatua ya 3: Uchambuzi wa Picha
- Hatua ya 4: Mahesabu ya Upana wa Viwanja Nyeupe kwenye Ubao wa kukagua
- Hatua ya 5: Rudia Hatua 3 na 4 kwa Picha ya Jaribio
- Hatua ya 6: Hesabu Ukuzaji wa Lens
- Hatua ya 7: Kupata R-mraba na Utaftaji wa Dawa ya Mtumiaji Kupitia Utafsiri
- Hatua ya 8: Kuonyesha Agizo la Mtumiaji kwenye Grafu
- Hatua ya 9: Punguza Maagizo yako
Video: Kupiga Maagizo ya Mpira wa Jicho lako: Mradi wa BME60B: Hatua 9
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:48
Na: Hannah Silos, Sang Hee Kim, Thomas Vazquez, Patrick Viste
Ukuzaji ni moja ya huduma muhimu zilizopo kwa glasi za kusoma, ambazo zinaainishwa na maagizo yao ya diopta. Kulingana na Chuo Kikuu cha Teknolojia cha Michigan, diopter ni urefu wa lensi, kawaida hupimwa kwa mm, katika kitengo cha mita (Chuo Kikuu cha Teknolojia cha Michigan). Kwa sababu glasi za kusoma zina lensi mbonyeo, urefu wa kitovu ungekuwa mzuri, na kusababisha diopta kuwa chanya pia (HyperPhysics). Urefu wa kulenga huongezeka kadiri umbali kati ya kitu unavyozidi kwenda mbali na lensi halisi, na hii inasababisha diopta kupungua kwa kuwa zina usawa. Kwa hivyo, kuwa na glasi za kusoma na diopta za ziada kutasaidia lensi kukuza karibu na mtazamo ili ionekane kama urefu wa kitovu ni mdogo kwa kuongeza thamani ya diopta.
Nambari iliyowasilishwa itatumika kutabiri diopter ya lensi na dawa isiyojulikana. Pembejeo mbili hutumiwa kuhesabu maagizo: picha ya msingi uliodhibitiwa bila kutumia lensi yoyote, na picha nyingine ya msingi huo huo lakini kupitia lensi ya chaguo. Mpango huo utapima upotoshaji kati ya picha hizi mbili. Kutoka hapo, tutaweza kukadiria diopta ya lensi na kutoa matokeo kwa mtumiaji kutazama.
Kwa Agizo hili, utahitaji:
- Mchoro wa ubao mweusi na nyeupe uliochapishwa kwenye karatasi ya 11x8.5
- Kamera yenye uwezo wa kufunga umakini wake
- Tatu, au kitu sawa na salama kamera
- Maagizo anuwai ya glasi za kusoma
- MATLAB
Hatua ya 1: Piga Picha
Ili kuhesabu ukuzaji wa lensi, unahitaji kuweza kulinganisha na saizi halisi ya kitu. Kwa mradi huu, tutalinganisha picha iliyokuzwa na picha ya kudhibiti.
Kwa hivyo, hatua ya kwanza ni kuchukua picha mbili za picha ile ile - ya kwanza kupitia kamera tu, na ya pili kupitia lensi ya glasi za kusoma unazotaka kujaribu.
Utakuwa unapiga picha ya ubao wa kuangalia nyeusi na nyeupe wa 8.5x11in na gridi ya 1in. Sanidi kamera yako 11in mbali na ubao wa kukagua. Kabla ya kuchukua picha, funga mwelekeo kwenye ubao wa kukagua.
Chukua picha ya ubao wa kukagua bila glasi za kusoma. Kisha, bila kusonga chochote, weka glasi za kusoma mbele ya kamera na upiga picha ya pili.
Hakikisha kwamba msimamo wa kamera yako hauingii kati ya risasi. Kitu pekee ambacho kinapaswa kubadilika kati ya picha hizo mbili ni uwepo wa lensi za glasi mbele ya kamera.
Ukimaliza na picha, pakia kwenye kompyuta yako.
Hatua ya 2: Pakia Picha kwenye MATLAB
Fungua hati mpya.
Kwanza, taja saraka ambapo picha zimehifadhiwa. Kisha, tumia kazi ya dir kutoa picha za-j.webp
Dir = 'C: / Watumiaji / kuras / Desktop / madarasa / SQ2 / BME60b / Sandbox / testphotos'; GetDir = dir ('*. Jpg');
Kwa mradi wetu, tulitaka kushawishi mtumiaji wa programu hiyo ambayo faili walitaka kulinganisha. Sehemu ya kwanza inamwuliza mtumiaji kutaja picha ya kudhibiti, na ya pili inamwuliza mtumiaji kutaja picha ya jaribio.
- Uliza mtumiaji faili ipi ni picha ya kudhibiti.
- Udhibiti = pembejeo ('# ya picha ya kudhibiti. / N');
- ControlFile = [GetDir (Udhibiti). Jina]
- Uliza mtumiaji faili ipi ni picha ambayo wanataka kuchambua.
- SelectFile = input ('\ n # ya picha unayotaka kuchambua. / N');
- PrescripFile = [GetDir (SelectFile). Jina];
Hatua ya 3: Uchambuzi wa Picha
Picha ya rangi katika MATLAB ni ya saizi ya MxNx3, wakati picha ya kijivu ni MxN. Hii inamaanisha kuwa ni haraka kuongeza / kuhariri picha ya kijivu kwa sababu kuna data ndogo ya kuweka wimbo wa Tumia rgb2gray kubadilisha picha kuwa kijivu. (Kazi ya imrotate ilitumika kwa sababu picha zetu zilikuja kwa usawa - safu hii ya nambari inaweza kuwa au sio lazima katika toleo lako.)
- % hubadilisha kuwa kijivu na huzunguka
- I = imread (Udhibiti wa Faili);
- I = rgb2gray (I);
- I = kuiga (I, 90);
Ifuatayo, onyesha picha. Kazi ndogo ndogo hutumiwa ili picha ya jaribio itaweza kuwa karibu na udhibiti katika hatua za baadaye.
- Maonyesho%
- takwimu (1);
- sehemu ndogo (1, 2, 1)
- onyesha (I);
- kichwa (ControlFile);
Tumia imcrop kumfanya mtumiaji apate ubao wa kukagua nje ya picha kamili. Nambari ifuatayo pia inaonyesha sanduku la ujumbe ili kutoa maagizo kwa mtumiaji.
- Punguza ubao wa kukagua kwa uchambuzi
- waitfor (msgbox ({'Use the cross hair to crop out checkerboard.', 'Kisha bonyeza mara mbili eneo la kupendeza.'}));
- I_crop = imcrop (I);
Tumia imbinarize kupiga picha.
I_binary = imbinarize (I_crop);
Hatua ya 4: Mahesabu ya Upana wa Viwanja Nyeupe kwenye Ubao wa kukagua
Halafu, mshawishi mtumiaji kuteka mstari kwenye picha kwa kutumia imline. Mstari huu unapaswa kukimbia usawa kwenye ubao wa kukagua. Inapaswa kuanza na kuishia kwenye mraba mweusi (haijalishi ni wapi) - hii ni kwa sababu tutakuwa tukipima upana wa mraba mweupe, sio weusi.
- Chora mstari
- takwimu (1)
- sehemu ndogo (1, 2, 1)
- onyesha (I_binary);
- waitfor (msgbox ({'Bonyeza na uburute kuteka laini iliyo na masanduku 9, kutoka nafasi nyeusi hadi nafasi nyeusi.', 'Bonyeza mara mbili ili uthibitishe.'}));
- mstari = imline;
- msimamo = subiri (mstari);
- ncha za mwisho = mstari.pataPosition;
Ondoa X na Y coodinates kwa ncha za mwisho wa mstari uliochorwa.
- X = ncha za mwisho (:, 1)
- Alama za mwisho = (:, 2);
Tumia maelezo mafupi kutengeneza grafu kulingana na nguvu zilizopatikana kwenye laini iliyochorwa. Hii inapaswa kufanana na wimbi la mraba linaloanzia 0 (nyeusi) hadi 1 (nyeupe). Mahesabu ya kilele na maeneo yao pia.
- takwimu (2)
- sehemu ndogo (1, 2, 1)
- kichwa ('Ukali wa picha kwenye mstari usiofaa (Udhibiti)')
- isiyo ya kawaida (I_binary, X, Y); gridi juu;
- [~, ~, c1, ~, ~] = improfile (I_binary, X, Y);
- [kilele, mahali] = vichwa vya upataji (c1 (:,:, 1));
- subiri
- njama (loc, peaks, 'ro');
- shikilia
Pata urefu wa kila tambarare kwenye grafu isiyofaa kutumia kitanzi. Endesha kitanzi kwa kiwango sawa cha kilele kilicho kwenye grafu ya wasifu. Ili kuhesabu urefu wa kila eneo tambarare, tumia kazi ya 'kupata' kupata maeneo yote ambayo kuna '1' badala ya thamani ya kiwango cha '0'. Kisha, hesabu urefu wa safu hiyo ili kupata urefu wote wa nyanda, ambayo inapaswa sawa na upana wa mraba mweupe katika saizi. ControlPlateauList = zero (1, urefu (loc));
kwa i = 1: urefu (loc)
ikiwa i == urefu (loc)
tambarare = pata (c1 (loc (i): mwisho,:, 1));
mwingine
Plateau = pata (c1 (loc (i): loc (i + 1) -1,:, 1));
mwisho
ControlPlateauList (i) = urefu (nyanda za juu);
mwisho
Hatua ya 5: Rudia Hatua 3 na 4 kwa Picha ya Jaribio
* Kumbuka: wakati wa kuchora laini ya wasifu kwenye picha ya jaribio, hakikisha kuichora kwenye mraba ambayo inalingana na laini uliyochora kwenye picha ya kudhibiti.
Hatua ya 6: Hesabu Ukuzaji wa Lens
Vipimo vilivyokuzwa huhesabiwa kwa kugawanya maana ya urefu wa tambarare, ambayo ilihesabiwa katika hatua ya 5, kwa maana ya urefu wa eneo tambarare la kudhibiti, ambalo lilihesabiwa katika hatua ya 4. Hii imehesabiwa kuwa 1.0884.
ukuzaji = maana (orodha ya Plateau) / maana (ControlPlateauList);
Hatua ya 7: Kupata R-mraba na Utaftaji wa Dawa ya Mtumiaji Kupitia Utafsiri
Kutumia nambari:
- md1 = fitlm (Uandikishaji uliopewa, MagArray);
- Iliyotengwa = md1. Iliyotengwa. Kawaida;
Tunaweza kupata thamani ya mraba-mraba ya grafu iliyopewaPresciption (lensi zetu zilizopewa maadili) dhidi ya MagArray (safu ya uwiano wa vipimo vya ukuzaji tuliohesabu hapo awali). Kwa kuwa na kiwango cha mraba cha kutosha cha R, inaweza kudhaniwa kuwa kuna uhusiano mzuri wa kutosha kuhalalisha utumiaji wa njia hii. Kwa kesi hii, thamani ya mraba-R ilikuwa 0.9912, ambayo inapendekeza uwiano mkubwa na kwa hivyo ni haki ya kutumia njia hii katika uchambuzi.
Kutumia kazi:
Dawa = interp1 (MagArray, GivenPrescription, ukuzaji, 'linear');
Tunaweza kutofautisha thamani inayofanana ya dawa (kwenye mhimili wa x) ya uwiano wetu wa ukuzaji (thamani kwenye mhimili wa y) na upate maagizo ya mtumiaji ni nini.
Kutafsiri data ni muhimu kwa njia hii kufanya kazi kwani inatuwezesha kufanya dhana juu ya habari ambazo hatuna, kulingana na habari tunayo. Wakati laini inayofaa zaidi ingekuwa mgombea mwenye nguvu kwa dhana hii, na kuunda mipaka ya kupunguza idadi ya matokeo hutoa athari sawa na glasi za maagizo huja kwa viwango vya sare za ziada wakati wowote. Hii inaelezewa katika hatua za baadaye.
Hatua ya 8: Kuonyesha Agizo la Mtumiaji kwenye Grafu
Kutumia nambari ifuatayo:
- takwimu;
- njama (Imepewa Uandikishaji, MagArray, '-g')
- subiri
- kiwanja (Dawa, ukuzaji, 'bp')
- shikilia
- gridi ya taifa
- hadithi ('Takwimu', 'Pointi Zilizochanganuliwa', 'Mahali', 'NW')
Tunaweza kupanga grafu inayoonyesha Viwango vya Ukuzaji dhidi ya Dawa Iliyopewa na laini ya kijani na data iliyopatikana ya ukuzaji wetu uliohesabiwa dhidi ya maagizo yetu yaliyounganishwa na nyota ya bluu. Kisha hadithi inaandika jina, x-axis, na y-axis na inaweka hadithi kwenye kona ya juu kushoto.
Hatua ya 9: Punguza Maagizo yako
Nambari ifuatayo inatumiwa kutoa kuzunguka kwa maagizo:
-
ikiwa Dawa <= 1.125
MahesabuPrescription = '1.0';
-
mwingine ikiwa Maagizo <= 1.375
MahesabuPrescription = '1.25';
-
mwingine ikiwa Maagizo <= 1.625
MahesabuPrescription = '1.5';
-
vinginevyo kama Maagizo <= 1.875
MahesabuPrescription = '1.75';
-
vinginevyo kama Maagizo <= 2.25
MahesabuPrescription = '2.0';
-
vingine ikiwa Maagizo <= 2.625
MahesabuPrescription = '2.5';
-
vinginevyo kama Dawa <= 3
MahesabuPrescription = '2.75';
-
vingine ikiwa Dawa <= 3.375
MahesabuPrescription = '3.25';
-
mwingine
MahesabuPrescription = 'haijulikani';
- mwisho
Dawa inayopatikana kupitia kuingiliana sio lazima ionyeshe maagizo halisi - hii ni kwa sababu kutakuwa na tofauti kidogo katika kuchambua picha kwa sababu ya makosa ya kibinadamu. Kwa hivyo, tunahitaji hatua hii kuainisha dawa halisi.
Maagizo ambayo hupewa kawaida huanza kutoka kwa diopta 1.0 na huongezeka kwa.25 katika maagizo yao, kwa hivyo baada ya kuhesabu maagizo tunataka kuamua dawa inayofaa zaidi kile mtumiaji anaweza kuhitaji. Baada ya kuhesabu maagizo, tunayatumia kupitia taarifa zilizopewa ikiwa ikiwa kuangalia thamani yake na kuamua ni maagizo gani muhimu. Chochote chini au sawa na 1.125, basi dawa ni 1.0. Chochote chini au sawa na 1.375, maagizo ni 1.25. Chochote chini au sawa na 1.625, dawa ni 1.5. Chochote chini au sawa na 1.845, maagizo ni 1.75. Nakadhalika.
Tunayo maadili yanayoongezeka kwani tunaangalia ikiwa maadili ni chini ya. Ikiwa tulipunguza maadili basi ya kwanza ikiwa taarifa ingesoma taarifa ya kwanza ikiwa wakati wote. Ikiwa dawa ni ndogo zaidi, tunataka kuitambua kama ndogo mara moja, kwa hivyo ndio sababu dhamana ndogo ndio tumeanza nayo. Chochote kilicho juu kuliko dhamana ya juu kinamaanisha kuwa maagizo hayatokani na data zetu, kwa hivyo itatoa usomaji wa kamba "isiyojulikana".
Ilipendekeza:
Malenge ya Halloween na Jicho La Uhuishaji la Kusonga - Malenge haya yanaweza Kutupa Jicho !: Hatua 10 (na Picha)
Malenge ya Halloween na Jicho La Uhuishaji la Kusonga | Malenge haya yanaweza Kutembeza Jicho Lake!: Katika hii inayoweza kufundishwa, utajifunza jinsi ya kutengeneza malenge ya Halloween ambayo hutisha kila mtu wakati jicho lake linahamia. Rekebisha umbali wa kichocheo cha sensa ya ultrasonic kwa thamani inayofaa (hatua ya 9), na malenge yako yatamshawishi mtu yeyote anayethubutu kuchukua pipi
Uchawi wa Elektroniki 8 Mpira na Mpira wa Jicho: Hatua 11 (na Picha)
Uchawi wa Elektroniki 8 Mpira na Mpira wa Jicho: Nilitaka kuunda toleo la dijiti la Mpira wa Uchawi wa 8 … Mwili wa hii ni 3D iliyochapishwa na onyesho limebadilishwa kutoka polyhedron katika rangi ya samawati hadi OLED ndogo inayodhibitiwa na nambari isiyo na mpangilio. jenereta iliyowekewa Arduino NANO. Halafu mimi
Jicho la Tatu (Mradi wa Arduino): Hatua 3
Jicho la Tatu (Mradi wa Arduino): Fikiria unataka kwenda kuwinda mizimu, lakini huna vifaa vingine isipokuwa bodi ya ouija, ambayo wawindaji wengi wenye ujuzi na wanasaikolojia wanapendekeza usitumie, na simu yako kama kinasaji cha EVP. Umejaribu kufungua y
Jinsi ya Kuandika Maagizo Kutumia Maagizo: Hatua 14
Jinsi ya Kuandika Maagizo Kutumia Maagizo: Hati hii inaonyesha jinsi ya kutumia mafunzo kwa kuandika maagizo
Jinsi ya kupiga picha kwa Maagizo: 3 Hatua
Jinsi ya kupiga picha kwa Maagizo: Huu ni mwongozo wa jinsi ya kutunga picha zako ili kutoa maelezo ya wazi na muhimu zaidi katika mafundisho yako, haswa kwa miradi midogo au ya kina. Ninatumia hatua ya wifi zangu na risasi kamera , na risasi