Агуулгын хүснэгт:
- Алхам 1: Урьдчилсан нөхцөл
- Алхам 2: Урьдчилсан нөхцөл (үргэлжлүүлэх)
- Алхам 3: Урьдчилсан нөхцөл (үргэлжлүүлэх)
- Алхам 4: Урьдчилсан нөхцөл (үргэлжлүүлэх)
- Алхам 5: Код ажиллуулахад бэлтгэхийн тулд Matlab -ийг цэвэрлэ
- Алхам 6: Нүдний ердийн 10 зураг, чихрийн шижингийн ретинопати шинж тэмдэг бүхий 10 зургийг сонгоно уу
- Алхам 7: Нүдний ердийн 10 зураг, чихрийн шижингийн ретинопатийн шинж тэмдэг бүхий 10 зургийг сонгоно уу (үргэлжлүүлнэ үү)
- Алхам 8: 2 хувьсагч (хэвийн ба оношлогдсон) үүсгэж, тус бүрийг 0 болгоно
- Алхам 9: Ердийн зургийг автоматаар байршуулахын тулд Loop -ийг үүсгэнэ үү
- Алхам 10: Ердийн зургийг автоматаар байршуулахын тулд Loop үүсгэх
- Алхам 11: Зургийн хил хязгаарыг тайрах
- Алхам 12: Саарал өнгийн дүрс үүсгэх
- Алхам 13: Эсрэг зураг үүсгэх
- Алхам 14: Эсрэг дүрсийг сайжруулах
- Алхам 15: Дундаж шүүлтүүр үүсгэнэ үү
- Алхам 16: Дундаж шүүлтүүрийг тодосгогч дүрстэй хослуулна уу
- Алхам 17: Пиксел хасах замаар шинэ дундаж маск хийх
- Алхам 18: Хоёртын шүүлтүүртэй дүрс үүсгэх
- Алхам 19: Шүүлтүүртэй зургуудаас олдсон жижиг блокуудыг устга
- Алхам 20: Дискний бүтцийн элемент үүсгэх
- Алхам 21: Морфологийн хаалтын ажиллагааг гүйцэтгэх
- Алхам 22: Хамгийн багадаа 8 холболттой обьектуудыг олоорой
- Алхам 23: Холбогдсон пикселийн хамгийн их тоог олоорой
- Алхам 24: Пикселийн хамгийн их утгыг 0 болгож,> = 26 пикселийн холболттой пикселийг олоорой
- Алхам 25: Зураг дээрх цусны судсыг устгана уу
- Алхам 26: Зургийн дэлгэц
- Алхам 27: Хөлөг онгоцнуудыг зайлуулж, Цусны Блокыг тоол
- Алхам 28: Нүдний торлог бүрхэвчийг тодорхойлсон цусны бүлэгнэлтийн тоон дээр үндэслэн оношлох
- Алхам 29: Хэрэв 5 -аас дээш блок байвал …
- Алхам 30: Зургийн тоон утга бүхий ердийн зургуудыг шүүх үйл явцыг 2 ба 3 гэж давтана уу
- Алхам 31: Оношлогдсон зургуудыг бүхэлд нь давтана
- Алхам 32: Статистикийн дүн шинжилгээ
- Алхам 33: Итгэлцлийн интервалыг олох
Видео: MATLAB -ийн тусламжтайгаар чихрийн шижингийн ретинопатийн автомат оношлогоо: 33 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
(Дээрх кодын тоймыг үзнэ үү)
Чихрийн шижингийн ретинопати бол цусан дахь сахарын хэмжээ ихэссэнээс үүдэлтэй чихрийн шижинтэй холбоотой нүдний өвчин юм. Цусан дахь сахарын хэмжээ ихэссэнээр нүдний торлог бүрхэвчийн судас хавдаж, улмаар судас томорч, судас гоожиход хүргэдэг бөгөөд энэ нь нүдний торлог бүрхэвчийн зураг дээр хар толбо үүсгэдэг. Энэхүү кодын тусламжтайгаар бид цусны судасны нэвчилтийн цэгүүдийг гадаад чихрийн шижингийн ретинопатийн илрэл болгон ашиглахыг зорьж байгаа боловч бодит амьдрал дээр оношилгооны нэмэлт техник шаардлагатай болно. Энэхүү кодын зорилго нь нүдний торлог бүрхэвчийн зурган дээрх хар цэгүүдээр харуулсан чихрийн шижингийн ретинопати өвчний шинж тэмдгийг тодорхойлохын тулд зураг боловсруулах, торлог бүрхэвчийн зургийг оношлох ажлыг автоматжуулах явдал юм.
Нүдний торлог бүрхэвчийн 10 ердийн зураг, нүдний торлог бүрхэвчийн оношлогдсон 10 зургийг кодыг ашиглан боловсруулж эхлээд зургийг нь уншиж, шүүж, дараа нь хар толбо тогтоож, тухайн босгон дээр үндэслэн чихрийн шижингийн ретинопати өвчний шинж тэмдэг байгаа эсэхийг тодорхойлдог. Үүний дараа үр дүнг командын цонхонд хэвлэн үзэгчдэд тайлбарлаж өгнө.
Алхам 1: Урьдчилсан нөхцөл
1. MATLAB програмыг компьютер дээрээ татаж авсан эсэхээ шалгаарай.
2. Холбоосоос олдсон txt файлыг татаж авна уу. (MATLAB кодтой ижил директорт хадгалахын тулд 'ctrl+s' дарна уу)
Алхам 2: Урьдчилсан нөхцөл (үргэлжлүүлэх)
4. MATLAB -ийг нээгээд командын цонхонд ‘uiimport’ гэж бичнэ үү.
5. officialdiagnoses.txt файлыг сонгоод MATLAB -д нүдний матриц болгон импортлоорой.
6. "Албан ёсны оношлогоо" -ыг ажлын талбар дахь хувьсагч гэж харж байгаа эсэхээ шалгаарай.
Алхам 3: Урьдчилсан нөхцөл (үргэлжлүүлэх)
7. Дээрх кодоос авах эсвэл Canvas дээрээс татаж авах боломжтой ModWald.m функцийг татаж аваарай.
(Профессор Кинг, профессор Чой нарын өгсөн код)
Алхам 4: Урьдчилсан нөхцөл (үргэлжлүүлэх)
8. The STARE төслийн өгөгдлийн хэсгээс 400 түүхий зургийг татаж аваарай.
Алхам 5: Код ажиллуулахад бэлтгэхийн тулд Matlab -ийг цэвэрлэ
Кодод нэмэх:
1. бүгдийг хаах (Өмнө нь нээгдсэн бүх зургийг хаах)
2. clearvars - албан ёсны оношлогооноос бусад (Өмнө нь оруулж ирсэн албан ёсны оношлогооны txt файлаас бусад бүх хувьсагчдыг цэвэрлэнэ)
3. cclc (Командын цонхыг цэвэрлэнэ)
Алхам 6: Нүдний ердийн 10 зураг, чихрийн шижингийн ретинопати шинж тэмдэг бүхий 10 зургийг сонгоно уу
1. Оношилгооны текст файлыг аваад зургийн нэрийг гаргаж аваарай. Эдгээр нэрийг текст файлын эхний баганад оруулсан тул тэдгээрийг задлахын тулд 'officialdiagnoses (:, 1)' гэж бичнэ үү. Зургийн нэрсийн матрицыг "all_image_numbers" гэсэн хувьсагчид өгсөн.
2. cell2mat функцийг ашиглан all_image_numbers хувьсагчийг эсийн массиваас матрицын массив болгон хөрвүүлэх.
Алхам 7: Нүдний ердийн 10 зураг, чихрийн шижингийн ретинопатийн шинж тэмдэг бүхий 10 зургийг сонгоно уу (үргэлжлүүлнэ үү)
3. Кодыг ажиллуулахын тулд ердийн 10 нүдний зургийг сонгоно уу. Энэ тохиолдолд сонгосон зургууд нь 278, 199, 241, 235, 35, 77, 82, 164, 239, 170 байв.
Эдгээр тоонуудыг матрицад байрлуулж, зургийг ачаалах үед дуудагдах хувьсагчид онооно.
4. Чихрийн шижингийн ретинопати гэж оношлогдсон торлог бүрхэвчийн зургийг 3 -р алхамыг давтана уу. Энэ тохиолдолд сонгосон зургууд нь 139, 137, 136, 135, 133, 140, 141, 116, 157, 188 байв.
Алхам 8: 2 хувьсагч (хэвийн ба оношлогдсон) үүсгэж, тус бүрийг 0 болгоно
Давталтын дугаарыг эхлүүлэхийн тулд for хувьсагчийн өмнө эдгээр хувьсагчдыг үүсгэнэ үү.
Алхам 9: Ердийн зургийг автоматаар байршуулахын тулд Loop -ийг үүсгэнэ үү
1. for давталт үүсгэх
2. Тоолох хувьсагчийг (i, энэ тохиолдолд) 1-10 утгын матрицад тохируулна уу. Энэхүү тоолох хувьсагчийг зураг тус бүрийг тус тусад нь дуудахад ашиглах болно
3. Зургийн матриц дахь i элементийг аваад зургийн нэрийг num2str функцийг ашиглан тооноос хөрвүүлээрэй.
Тоон функцийг ашиглан зургийн нэрэнд байгаа цифрүүдийн тоог олоорой. Энэ утгыг digit_normal гэсэн хувьсагчид өг. Энэ тоо нь нэг оронтой тоонд 1, хоёр оронтой тоонд 2, гурвалсан тоонд 3 байх ёстой. Энэ мэдээллийг зураг руу автоматаар залгахад ашиглах болно.
Алхам 10: Ердийн зургийг автоматаар байршуулахын тулд Loop үүсгэх
3. Өмнөх алхамуудын бүх гурван боломжийг агуулсан if мэдэгдэл үүсгэнэ. Хэрэв зургийн нэр 1 оронтой байвал дүрсийг "im000", 2 оронтой бол "im00", 3 -тэй бол "im0" гэж нэрлэнэ.
4. If мэдэгдэл бүрийн доор тохирох тооны тэгтэй (дээр тайлбарласны дагуу) харгалзах доорх "im" -г унших хувьсагчийг өг.
Алхам 11: Зургийн хил хязгаарыг тайрах
Анхны зургийг аваад imcrop шүүлтүүр ашиглан хар хүрээг арилгаж I_crop хувьсагчийг онооно уу. Матриц [95, 95, 500, 410] ашиглан тайрах тэгш өнцөгтийг зааж өгсөн болно.
Алхам 12: Саарал өнгийн дүрс үүсгэх
Тайрсан зургийг аваад rbg2gray шүүлтүүрийг ашигласнаар зургийг саарал өнгөтэй болгоно. Энэ зургийг I2 хувьсагчид онооно уу.
Алхам 13: Эсрэг зураг үүсгэх
I2 дүрсийг авч, эрч хүчийг дахин хэмжихийн тулд imadjust ашиглана уу.
[0.2, 0.7] хязгаарт багтсан утгуудыг аваад дахин [0, 1] болгон өөрчил. Гамма дүрсийг илүү тод болгохын тулд 0.8 болгож тохируулсан байна. Шинэ дүрсийг I_adjusted гэж оноох.
Алхам 14: Эсрэг дүрсийг сайжруулах
I_adjusted зургийг аваад тохируулгыг сайжруулахын тулд adapthisteq функцийг ашиглана уу.
Adapthisteq синтакс нь зургийн нэр, I_adjusted, 'numTiles', numTiles -ийн хэмжээ, 'nBins', хогийн савны тоог шаарддаг. NumTiles -ийн хэмжээг [8 8] болгож, зургийг 8х8 хэмжээтэй хавтан болгон хувааж, хогийн савны тоог 28 болгоно. Зургийг I_constrast гэж онооно.
Алхам 15: Дундаж шүүлтүүр үүсгэнэ үү
Fspecial функцийг ашиглан 'Meanfilt' нэртэй хувьсагч үүсгэнэ үү. Дундаж шүүлтүүр үүсгэхийн тулд ‘дундаж функц’ оруулаад гүйдэг цонхны хэмжээг [90 90] оруулна уу.
Алхам 16: Дундаж шүүлтүүрийг тодосгогч дүрстэй хослуулна уу
Mask_mean нэртэй шинэ хувьсагч үүсгэж, imfilter функцийг ашиглан I_contrast зургийг авч, өмнө үүсгэсэн дундаж шүүлтүүрийг ашиглана уу.
Алхам 17: Пиксел хасах замаар шинэ дундаж маск хийх
Mask_mean2 нэртэй хувьсагч үүсгэж, imsubtract функцийг ашиглан I_contrast дахь пиксел бүрийн утгыг mask_mean дээрх харгалзах пикселээс хасна уу.
Алхам 18: Хоёртын шүүлтүүртэй дүрс үүсгэх
Imbinarize ашиглан саарал өнгийн зургийг хар ба цагаан болгоно. Оруулах mask_mean2, "дасан зохицох", "ForegroundPolarity", "харанхуй", "Мэдрэмтгий", 0.6. Энэхүү шинэ дүрсийг mask_binarize болгох.
Алхам 19: Шүүлтүүртэй зургуудаас олдсон жижиг блокуудыг устга
Mask_binarize дээрх bwareaopen функцийг ашиглан 100 пикселээс бага холболттой объектыг устгаж, босго утгыг 100 болгож тохируулна уу. Bw гэж хувьсагчийг онооно.
Алхам 20: Дискний бүтцийн элемент үүсгэх
Strel функцийг ашиглан дискний бүтцийн элемент (2 радиустай) үүсгэнэ үү. Үүнийг даалгаарай.
Алхам 21: Морфологийн хаалтын ажиллагааг гүйцэтгэх
Объект дээр морфологийн ойрхон үйлдэл хийхийн тулд bw -ийг аваад бүтцийн элементэд imclose функцийг ашиглана уу.
Алхам 22: Хамгийн багадаа 8 холболттой обьектуудыг олоорой
Bw -ийг аваад bwconncomp ашиглан зурган дээрх 8 -аас доошгүй холболттой объектуудыг хайж олоорой. Тоон гаралтыг cc_1 гэж оноож өг.
Алхам 23: Холбогдсон пикселийн хамгийн их тоог олоорой
CC дахь нүд бүр дээр "numel" функцийг гүйцэтгэхийн тулд cellfun функцийг ашиглана уу. Энэ нь PixelIdxList нүдэнд байгаа элементүүдийн тоог олдог. "NumPixels" -д утга оноох.
NumPIxels дээрх хамгийн их утгыг олоорой. Хамгийн их дээд хэмжээг "хамгийн том" болгож, хамгийн их утгын индексийг "idx" болгож өгнө үү.
Алхам 24: Пикселийн хамгийн их утгыг 0 болгож,> = 26 пикселийн холболттой пикселийг олоорой
= 26 пикселийн холболт "src =" https://content.instructables.com/ORIG/FXY/DTW3/JEOIIEL4/FXYDTW3JEOIIEL4-p.webp
= 26 пикселийн холболт "src =" https://content.instructables.com/ORIG/FXO/GBX1/JEOIIELB/FXOGBX1JEOIIELB-p.webp
= 26 Пикселийн холболт "src =" {{file.large_url | нэмэх: 'auto = webp & frame = 1 & height = 300' %} ">
= 26 Пикселийн холболт "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} ">
Зурган дээрх хамгийн том утгатай пикселийг "bw" болгож 0 болгож пикселийг хар болго.
Bwconncomp ашиглан зурган дээрх хамгийн багадаа 26 пикселийн холболттой объектуудыг олоорой. Cc_1 хувьсагчид оноох.
Алхам 25: Зураг дээрх цусны судсыг устгана уу
Bwpropfilt функцийг ашиглан [0, 0.9] мужид байгаа зураг дээр байгаа цусны судсыг зайлуулна.
[0.9, 1] нь 1 -тэй ойролцоо утгууд нь мөрийг илэрхийлдэг тул хассан болно. "Хөлөг онгоцыг устгах" даалгавар өгөөрэй.
Алхам 26: Зургийн дэлгэц
Шүүгдсэн зураг бүрийг дэд хэсэгт харуулна. Imshow. "хилийн" ба "нягт" оролттойгоор зураг бүрийг дэд хэсгийн бүтцэд харуулна. Ямар шүүлтүүр ашигласныг ялгахын тулд зураг бүрт гарчиг нэмнэ үү.
Алхам 27: Хөлөг онгоцнуудыг зайлуулж, Цусны Блокыг тоол
1. "RemoveVessels" -ийг аваад "Centroid" функцийг бүсийн хэсгүүдэд ашигласнаар зураг дээрх объектуудын төвийг тодорхойлох болно. Эдгээр объектууд нь зураг дээрх цусны бүлэгнэлттэй тохирч байх ёстой.
2. Центройд матрицын уртыг авч тодорхойлсон цусны бүлэгнэлтийн тоог тоол.
Алхам 28: Нүдний торлог бүрхэвчийг тодорхойлсон цусны бүлэгнэлтийн тоон дээр үндэслэн оношлох
Тодорхойлсон цусны бүлэгнэлтийн тоон дээр үндэслэн зургийг оношлохын тулд if мэдэгдлийг ашиглана уу.
Хэрэв тодорхойлсон центроидын тоо 5 -аас бага буюу тэнцүү байвал зургийг хэвийн гэж тодорхойлсон болно.
Центроидын тоо 5 -аас дээш байсан бол уг зураг нь чихрийн шижингийн ретинопати гэж оношлогджээ.
Үр дүнг командын цонхонд fprintf ашиглан хэвлэнэ.
Алхам 29: Хэрэв 5 -аас дээш блок байвал …
Дээрх зааврыг оношлогооны зургуудыг өөр мэдэгдэл болгон давтана уу. Бөмбөлгийн тоо 5 -аас их байвал энэ хэсэг ажиллах болно.
If мэдэгдлийг дуусга.
Алхам 30: Зургийн тоон утга бүхий ердийн зургуудыг шүүх үйл явцыг 2 ба 3 гэж давтана уу
Тоонууд (зургийн дугаар дахь цифрүүдийн тоо) 2 ба 3 -тай тэнцүү байвал илэрхийллийг эх хувилбарын үлдсэн хэсэгт давтана. Энэ нь ердийн зургуудын for давталтыг дуусгадаг.
For давталтыг дуусга.
Алхам 31: Оношлогдсон зургуудыг бүхэлд нь давтана
"Тооноос хасах_дэслэгдэх" матрицад жагсаасан оношлогдсон зургуудыг ашиглан бүх үйл явцыг давт.
Зураг (i) -ийг бүгдийг нь үзээд үүнийг (i+10) болгон өөрчилсөн байх ёстой.
Алхам 32: Статистикийн дүн шинжилгээ
1. Үр дүнг txt файлд байгаа албан ёсны оноштой харьцуулахын тулд 'Бодит_Дүгнэлт_Матрикс' -ыг ашиглана. Эхний 10 тэг нь эхний 10 зураг хэвийн байх ёстойг харуулж байна. Сүүлийн 10 зураг нь сүүлийн 10 зургийг чихрийн шижингийн ретинопати гэж ангилах ёстойг харуулж байна.
2. 'Дугаар_засагч' үүсгэхэд ашигласан давхар тэнцүү тэмдэг нь for давталтаас үүсгэсэн 'Actual_Diagnosis_Matrix' -ийн харгалзах элементүүдийн утгыг 'Diagnosis_Matrix' -тэй харьцуулж логик массив үүсгэдэг.
Оношилгоонд тохирсон элемент бүрийн хувьд 1 -ийг нэмж оруулах бөгөөд энэ зургийг зөв оношлосон гэсэн үг юм. Хэрэв буруу байвал матрицад 0 -ийг нэмнэ.
Үүний нийлбэрийг авбал бүгдийг нь нэмнэ. Өөрөөр хэлбэл зөв оношлогдсон зургуудын нийлбэрийг олдог.
3. "Эцсийн_хувийн_засвар" гэдэг нь чихрийн шижингийн ретинопати оношлогдсон кодын хэр зөв болохыг тооцоолсон хувь юм. Зөв оношлогдсон зургийн тоог 20 -д (нийт зургийн тоо) хувааж, 100 -аар үржүүлж, амжилттай оношлогдсон хувийг олох болно.
Алхам 33: Итгэлцлийн интервалыг олох
1. Үүнийг функц гэж дуудахын тулд ModWald.m татаж авсан эсэхээ шалгаарай. Функц байхгүй бол та өөрчилсөн Wald аргыг ашиглан өөртөө итгэх интервалыг тооцоолох хэрэгтэй болно.
2. ModWald функц нь 2 оролттой бөгөөд эхнийх нь зөв тодорхойлсон зургийн тоо, хоёр дахь нь зургийн нийт хэмжээ юм.
3. ModWald функц нь түүвэрлэсэн мэдээллийн үнэн зөв байхын тулд пропорцын итгэлцлийн интервалын доод ба дээд хязгаарыг гаргана. Өөрөөр хэлбэл, энэ нь кодын нарийвчлалын үнэн хувь нь хэдэн хувь байх вэ гэсэн интервал өгөх болно.
4. Доорх fprintf командыг ашиглан командын цонхонд статистик болон итгэлцлийн интервалыг гаргана.
> fprintf ('%. Торлог бүрхүүлийн зургуудын 0f хувь нь албан ёсны оношийн дагуу зөв оношлогдсон байна. / n / n', Эцсийн_хувийн_зөв)
> fprintf ('Манай код чихрийн шижингийн ретинопати өвчнийг зөв оношлох бодит хувь нь / n 20 дээж авсан зураг дээр үндэслэн [%.3f, %.3f] -д багтах болно / n', доод_холбоотой, дээд_холбоотой)
Зөвлөмж болгож буй:
Halloween -д зориулсан аймшигтай хулуу чихрийн машин: 5 алхам
Halloween -д зориулсан аймшигтай хулуу чихрийн машин: Сайн байцгаана уу! Холловины баярын мэнд !! Бид хулуу дэнлүү барьсан бөгөөд хэн нэгэн түүн дээр ирэхэд хөгжим тоглож, чихэр нулимдаг
Автомат чихрийн нишингийн аж ахуй Minecraft: 10 алхам
Автомат чихрийн нишингийн фермийн Minecraft: Гоёмсог, автомат чихрийн нишингийн аж ахуйг өөрийн гараар хэрхэн яаж хийх тухай алхам алхмаар зааварчилгааг энд оруулав
Машины зогсоолын туслах хялбар засвар / оношлогоо: 4 алхам
Машины зогсоолын туслах хялбар засвар / оношлогоо: За эхэлцгээе, би 2010 оны Chevrolet Avalanche -тэй бөгөөд арын бамперт 4 зогсоолын туслах мэдрэгчтэй. Энэхүү нарийн төвөгтэй төхөөрөмжийг машин дээр болон миний мэдэлд хамгийн сайн ашиглах боломжтой. Тиймээс би дуртай зүйл рүүгээ явлаа
Хатуу диск: оношлогоо, алдааг олж засварлах, засвар үйлчилгээ хийх: 3 алхам
Хатуу диск: оношлогоо, алдааг олж засварлах, засвар үйлчилгээ хийх: Хатуу диск гэж юу вэ?- Энгийнээр хэлэхэд хатуу диск нь таны бүх өгөгдлийг хадгалдаг. Энэ нь таны бүх файл, фолдерыг байрлуулсан хатуу дискийг агуулдаг. Мэдээлэл нь соронзон хэлбэрээр диск дээр хадгалагддаг тул
Автомат чихрийн нишингийн аж ахуй: 9 алхам
Автомат чихрийн нишингийн аж ахуй: Энэ бол чихрийн нишингийн автомат аж ахуй тул та дахин ургац хураах шаардлагагүй болно