ዝርዝር ሁኔታ:
- ደረጃ 1: ደረጃ 1: ምስል በመጫን ላይ
- ደረጃ 2 - ደረጃ 2 - የጩኸት ማጣሪያ እና ሂስቶግራም
- ደረጃ 3 - ደረጃ 3 - ገደቦችን ማዘጋጀት
- ደረጃ 4 GUI መፍጠር
- ደረጃ 5 - የቪዲዮ ማሳያ
ቪዲዮ: የማትላብ ሳንባ ክፍልፋዮች -5 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:29
በ: ፉክ ላም ፣ ፖል ዬንግ ፣ ኤሪክ ሬይስ
በሳንባ ክፍፍል ውስጥ ያሉ ስህተቶች የበሽታ አካባቢን መለየት አስመልክቶ የሐሰት መረጃን እንደሚያመነጩ እና የምርመራውን ሂደት በቀጥታ ሊጎዳ ይችላል። የሳንባ በሽታዎች ፈታኝ ቅርጾች ሲኖሯቸው ዘመናዊ የኮምፒተር-እገዛ ቴክኒኮች ትክክለኛ ውጤቶችን መስጠት አልቻሉም። እነዚህ ያልተለመዱ ቅርጾች በ pleural effusions ፣ በማጠናከሮች ፣ ወዘተ ሊከሰቱ ይችላሉ ፣ ይህም የሳንባው ወሰን ከአከባቢው የደረት ሕብረ ሕዋስ ተለይቶ በሚገኝበት የሳንባ ክፍፍል ዘዴን በመተግበር ፣ የእኛ መተግበሪያ ሙሉ በሙሉ ሊበጁ የሚችሉ ዕይታዎችን ለመስጠት በተጠቃሚው የግብዓት ገደቦች ድንበሮችን መለየት ይችላል። ከሳንባዎች ቅርጾች ፣
የዚህ የ MatLab ፕሮጀክት ዓላማ የሳንባዎቹን የኤክስሬ ምስሎች በሽታ አምጪ ሁኔታዎችን ለማወቅ ለተጠቃሚ ምቹ የሆነ መስተጋብራዊ የሳንባ ክፍልፍል መተግበሪያን መፍጠር ነው። የሳንባ በሽታዎችን ለዶክተሮች እና ለሬዲዮሎጂስቶች ይበልጥ አስተማማኝ መንገድ ለመስጠት ያልተለመዱ ሳንባዎችን ለመግለፅ እና ለመለየት የበለጠ ውጤታማ መንገድ መፍጠር ዓላማችን ነው። በ MatLab ውስጥ የመተግበሪያ ዲዛይነር መሣሪያን በመጠቀም ፣ ፕሮግራሙ በተለይ በደረት ኤክስሬይ እና በኮምፒዩተር ቲሞግራፊ (ሲቲ) ቅኝቶች ለመስራት የተነደፈ ነው ፣ ግን ከኤምአርአይ ስካን ጋር ለመስራትም ተፈትኗል።
ከዚህ በታች ያሉት መመሪያዎች የጩኸት ማጣሪያ ቴክኒዎቻችንን (ዝቅተኛ-ማለፊያ Wiener ማጣሪያ) እንዲሁም የምስል ደፍ (የግራዝ ስኬል ምስልን የጥንካሬ ሂስቶግራምን በመጠቀም) እና ሞሮሎጂያዊ ቅልጥፍናን (በምስል መስፋፋት እና በምስል መሸርሸር መካከል ያለው ልዩነት) ወደ የፍላጎት ክልል መለየት። ከዚያ መመሪያው ሁሉንም አካላት ወደ ግራፊክ የተጠቃሚ በይነገጽ (GUI) እንዴት እንደምናዋህድ ያብራራል።
ማስታወሻ:
1). ይህ ፕሮጀክት በጥናታዊ ጽሑፍ ተነሳሽነት ነው - “በሳንባ ውስጥ ያልተለመዱ የሳንባዎች ክፍልፋዮች እና የምስል ትንተና - የአሁኑ አቀራረቦች ፣ ተግዳሮቶች እና የወደፊት አዝማሚያዎች”። የትኛው እዚህ ሊገኝ ይችላል
2). እኛ ከኤንኤች ክሊኒክ ማዕከል የራጅ ምስሎችን እየተጠቀምን ነው። አገናኝ እዚህ ይገኛል
3). የመተግበሪያ ዲዛይነር እገዛ እዚህ ይገኛል
4). ኮዱን ከማካሄድዎ በፊት የ Dir ዱካውን (በመስመር 34 ውስጥ) ወደ ፋይል ማውጫዎ እና የምስል ዓይነት (መስመር 35) መለወጥ ያስፈልግዎታል (እኛ *-p.webp
ደረጃ 1: ደረጃ 1: ምስል በመጫን ላይ
ይህ ደረጃ የመጀመሪያውን ስዕል በግራጫ ሚዛን ያሳየዎታል። 'ስም_እስክ.ፒንግ' ን ወደ ምስልዎ ስም ይለውጡ
ግልጽ; clc; ሁሉንም ይዝጉ;
%% ምስሎችን በመጫን ላይ
raw_x_ray = 'የስም_ስዕል.ፒንግ';
እኔ = አነባለሁ (ጥሬ_x_ray);
ምስል (101);
imshow (እኔ);
የቀለም ካርታ (ግራጫ);
ርዕስ ('ግራጫማ ኤክስሬይ');
ደረጃ 2 - ደረጃ 2 - የጩኸት ማጣሪያ እና ሂስቶግራም
ለግራጫው ሚዛን ምስል ደፍ ለማግኘት ፣ የተለየ ሁነታዎች ካሉ ለማየት ሂስቶግራሙን እንመለከታለን። እዚህ የበለጠ ያንብቡ
እኔ = wiener2 (እኔ ፣ [5 5]);
ምስል (102);
ንዑስ ክፍል (2 ፣ 1 ፣ 1);
imshow (እኔ);
ንዑስ ክፍል (2 ፣ 1 ፣ 2);
ኢምሂስት (I ፣ 256);
ደረጃ 3 - ደረጃ 3 - ገደቦችን ማዘጋጀት
ይህ ደረጃ በሂስቶግራም መሠረት ደፍ እንዲያዘጋጁ ያስችልዎታል። ሞሮሎጂካል ግራድየንት በቀይ ውስጥ ያለውን የፍላጎት ክልል ያደምቃል ፣ እና የተግባር visboundaries የተዘረጋውን እና የተጣራውን የሳንባ ምስል በቀይ ይሸፍናል።
የክልል መገልገያዎችን በመጠቀም ፣ የጥንካሬን ድርድሮች በትክክል መገምገም እና ወደታች ወደታች መደርደር እንችላለን። በመቀጠልም ግራጫውን ስላይድ ምስል ሁለትዮሽ አደርጋለሁ እና የፍላጎት ክልልን (ሮአይ) ለማጉላት ሞርፎሎጂያዊ የግራዲየሽን ዘዴን እና mLoren Shurasking ን ተግባራዊ አደርጋለሁ። ቀጣዩ ደረጃ ምስሉን መገልበጥ ነው ስለዚህ የሳንባው ROI በጥቁር ዳራ ውስጥ ነጭ ነው። 2 ጭንብል ለማሳየት የተግባር ማሳያ ‹MaskAsOverlay› ን እጠቀማለሁ። ማሳሰቢያ -ኮዱ ከሎረን ሹሬ ፣ አገናኝ የተነሳ ነው።
ላሊሊ ፣ እኔ bwbwboundaries ን በመጠቀም እና የማጣሪያውን ምስል እና ድንበሮችን በመሸፈን ቀይ ንድፍ እፈጥራለሁ።
a_thresh = እኔ> = 172; % ይህንን ገደብ ያዘጋጁ
[labelImage ፣ numberOfBlobs] = bwlabel (a_thresh);
መደገፊያዎች = የክልል መገልገያዎች (a_thresh ፣ ‘all’);
sortedSolidity = sort ([props. Solidity], 'ወደታች');
SB = የተደረደረ ጥንካሬ (1);
SB == 1 % SB ጥንካሬን ብቻ የሚቀበል ከሆነ == 1 አጥንቶችን ያጣሩ
binaryImage = አለመመደብ (እኔ); ምስል (103);
imshow (የሁለትዮሽ ምስል); የቀለም ካርታ (ግራጫ);
SE = strel ('ካሬ' ፣ 3);
morphologicalGradient = imsubtract (imdilate (binaryImage, SE) ፣ imerode (binaryImage ፣ SE));
ጭምብል = አለመመጣጠን (ሞርፎሎጂካል ግራድየንት ፣ 0.03);
SE = strel ('ካሬ' ፣ 2);
ጭምብል = መዘጋት (ጭምብል ፣ SE);
ጭምብል = መሙላት (ጭምብል ፣ ‹ቀዳዳዎች›);
ጭምብል = ብሬፋፋይል (ጭምብል ፣ 2); የአከባቢ ማሳያ % ቁጥጥር ቁጥር
notMask = ~ ጭንብል;
ጭንብል = ጭንብል | bwpropfilt (notMask, 'Area', [-Inf, 5000 - eps (5000)]);
ShowMaskAsOverlay (0.5 ፣ ጭንብል ፣ 'r'); % መተግበሪያ/ተግባር showMaskAsOverlay ን ማውረድ አለብዎት
BW2 = imfill (binaryImage ፣ 'ቀዳዳዎች');
new_image = BW2;
new_image (~ ጭንብል) = 0; % የተገላቢጦሽ ዳራ እና ቀዳዳዎች
ቢ = ድንበሮች (አዲስ_ምስል); % 2 ልኬቶችን ብቻ ሊቀበል ይችላል
ምስል (104);
imshow (አዲስ_ምስል);
ቆይ
visboundaries (ለ);
አበቃ
ደረጃ 4 GUI መፍጠር
አሁን ፣ ቀዳሚውን ኮድ ወደ MATLAB መተግበሪያ እናዋሃዳለን። በ MATLAB (አዲስ> መተግበሪያ) ውስጥ የመተግበሪያ ዲዛይነሩን ይክፈቱ። በመጀመሪያ ፣ ጠቅታ-በመያዝ እና በሦስት መጥረቢያዎች ወደ መሃል የሥራ ቦታ በመጎተት በይነገጹን እንቀርፃለን። በመቀጠል ፣ ሁለት አዝራሮችን ፣ አንድ የአርትዕ መስክ (ጽሑፍ) ፣ አንድ የአርትዕ መስክ (ቁጥራዊ) ፣ አንድ ተንሸራታች እና አንድ ተቆልቋይ ምናሌን ጠቅ አድርገን እንይዛለን። ሁለት መጥረቢያዎች እያንዳንዳቸው ቅድመ -እይታውን ያሳዩ እና ምስሉን ይተነትኑታል ፣ እና ሦስተኛው መጥረቢያ ለቅድመ -እይታ “የተመረጠ” ምስል የፒክሰሎች ሂስቶግራም ያሳያል። የአርትዖት መስክ (ጽሑፍ) ሳጥኑ የተመረጠውን ምስል የፋይል ዱካ ያሳያል ፣ እና የአርትዕ መስክ (ቁጥራዊ) የተገኘውን የሳንባዎች የፒክሰል አካባቢ ያሳያል።
አሁን በመተግበሪያ ዲዛይነር ውስጥ ከዲዛይን እይታ ወደ ኮድ እይታ ይቀይሩ። በእሱ የመደመር ምልክት ያለው ቀይ “ባህሪዎች” ቁልፍን ጠቅ በማድረግ ለንብረቶች ኮዱን ያስገቡ። ከዚህ በታች በተገለጸው ኮድ ውስጥ እንደሚታየው I ፣ ደፍ እና ክልሎችToExtract ን ባህሪያትን ያስጀምሩ። በመቀጠል ፣ በስራ ቦታው የላይኛው ክፍል (ክፍል አሳሽ) ላይ አንድ አዝራር በቀኝ ጠቅ ያድርጉ እና ከጥሪ ማስታወሻዎች> ወደ… ጥሪ ጥሪ ይሂዱ። ለ ‹ተግባር SelectImageButtonPushed (መተግበሪያ ፣ ክስተት)› ኮዱን ያክሉ። ይህ ኮድ uigetfile ን በመጠቀም ከኮምፒዩተርዎ ለመተንተን ምስል እንዲመርጡ ያስችልዎታል። አንድ ምስል ከመረጡ በኋላ የቅድመ እይታ ምስል በሂስቶግራም ታጅቦ በመጥረቢያዎቹ ስር ይታያል። ከዚያ ፣ ሌላውን ቁልፍ በቀኝ ጠቅ ያድርጉ እና የመልሶ መደወልን ተግባር ለመፍጠር ተመሳሳይ አሰራርን ይድገሙ።
ከ “ተግባር AnalyzeImageButtonPushed (መተግበሪያ ፣ ክስተት)” ስር ባለው ኮድ ውስጥ ያክሉ። በመተንተን የምስል አዝራር ላይ (ለዚህ ኮድ በቀኝ ጠቅ ካደረጉት) ይህ ኮድ በቅድመ-እይታ ምስል ላይ የፒክሰል ቆጠራን እና የብሎግ ግኝትን ያከናውናል። አዝራሮቹን ካዘጋጁ በኋላ ፣ አሁን ተንሸራታቹን እና ተቆልቋይ ምናሌውን እናዘጋጃለን። ተንሸራታቹን በቀኝ ጠቅ ያድርጉ ፣ የመደወያ ተግባርን ይፍጠሩ እና ከ “ተግባር FilterThresholdSliderValueChanged (መተግበሪያ ፣ ክስተት)” በታች ባለው ኮድ ውስጥ ያክሉ። ይህ ተንሸራታቹ ግራጫ-ጥንካሬን ደፍ እንዲያስተካክል ያስችለዋል።
ለተቆልቋይ ምናሌው የመደወያ ተግባርን ይፍጠሩ እና ተቆልቋይ ምናሌው በተተነተኑት የምስል መጥረቢያዎች ላይ የሚታየውን የብሎብስ ብዛት ለመቀየር ከ “ተግባር AreastoExtractDropDownValueChanged (መተግበሪያ ፣ ክስተት)” በታች ባለው ኮድ ውስጥ ያክሉ። አሁን በክፍል አሳሽ ውስጥ እያንዳንዱን አካል ጠቅ ያድርጉ እና እንደ የአካሎቹን ስም መለወጥ ፣ መጥረቢያዎችን ማስወገድ እና መጠኑን መለወጥ የመሳሰሉትን ንብረቶቻቸውን ወደ እርስዎ ፍላጎት ይለውጡ። በንድፍ ዕይታ ውስጥ የተባባሪ አሳሽ አካላትን ወደ ተግባራዊ እና ለመረዳት ቀላል አቀማመጥ ይጎትቱ እና ይጣሉ። አሁን ለፒክሰል አካባቢ የሳንባዎች ምስሎችን ሊተነተን የሚችል በ MATLAB ውስጥ መተግበሪያ አለዎት!
ንብረቶች (መዳረሻ = የግል) እኔ = ; % የምስል ፋይል
ደፍ = 257; ግራጫ ጥንካሬን ሁለትዮሽ ለማድረግ %ደፍ
ክልሎችToExtract = 2;
አበቃ
ተግባር SelectImageButtonPushed (መተግበሪያ ፣ ክስተት)
clc; Dir = 'C: / Users / danie / Downloads / images_004 / images'; %የማይለዋወጥ ፋይልን “ቅድመ ቅጥያ” ይግለጹ
[imageExt ፣ ዱካ] = uigetfile ('*. png'); %የምስሉን ስም ተለዋዋጭ ክፍል ይያዙ
imageName = [Dir filesep imageExt]; %የማይዛመድ እና የማይለዋወጥ ድርድር
app. I = imread (የምስል ስም); %ምስሉን ያንብቡ
imshow (app. I ፣ 'ወላጅ' ፣ app. UIAxes); %ምስሉን ያሳዩ
app. FilePathEditField. Value = መንገድ; የመጀመሪያው ምስል የመጣበትን %አሳይ ፋይል ዱካ
አበቃ
ተግባር AnalyzeImageButtonPushed (መተግበሪያ ፣ ክስተት)
originalImage = app. I;
originalImage = wiener2 (app. I ፣ [5 5]); %ነጥብ ማስወገጃ ማጣሪያ
ሂስቶግራም (መተግበሪያ አክስስ ሂስቶግራም ፣ አፕ. አይ ፣ 256); %የምስል ሂስቶግራም አሳይ
a_thresh = originalImage> = app.threshold; % ይህንን ገደብ ያዘጋጁ
labelImage = bwlabel (a_thresh);
መደገፊያዎች = የክልል መገልገያዎች (a_thresh ፣ ‘all’);
sortedSolidity = sort ([props. Solidity], 'ወደታች');
SB = የተደረደረ ጥንካሬ (1);
SB == 1 % SB ጥንካሬን ብቻ የሚቀበል ከሆነ == 1 አጥንቶችን ያጣሩ
SE = strel ('ካሬ' ፣ 3);
morphologicalGradient = imsubtract (imdilate (labelImage, SE) ፣ imerode (labelImage ፣ SE));
ጭምብል = አለመመጣጠን (ሞርፎሎጂካል ግራድየንት ፣ 0.03);
SE = strel ('ካሬ' ፣ 2);
ጭምብል = መዘጋት (ጭምብል ፣ SE);
ጭምብል = መሙላት (ጭምብል ፣ ‹ቀዳዳዎች›);
ጭንብል = ብሬፋይል (ጭምብል ፣ መተግበሪያ። ክልሎችToExtract);
የአከባቢ ማሳያ % ቁጥጥር ቁጥር
notMask = ~ ጭንብል;
ጭንብል = ጭንብል | bwpropfilt (notMask, 'Area', [-Inf, 5000 - eps (5000)]);
BW2 = መሙላት (መሰየሚያ ምስል ፣ ‹ቀዳዳዎች›);
new_image = BW2;
new_image (~ ጭንብል) = 0;
ቢ = ድንበሮች (አዲስ_ምስል); % 2 ልኬቶችን imshow (new_image ፣ 'ወላጅ' ፣ መተግበሪያ። UIAxes2) ብቻ መቀበል ይችላል ፤
ያዝ (app. UIAxes2 ፣ 'on');
visboundaries (ለ);
አዘጋጅ (gca ፣ ‘YDir’ ፣ ‘reverse’);
lungArea = bwarea (new_image);
app. PixelAreaEditField. Value = lungArea;
አበቃ
አበቃ
ተግባር FilterThresholdSliderValueChanged (መተግበሪያ ፣ ክስተት)
app.threshold = app. FilterThresholdSlider. Value;
አበቃ
ተግባር AreastoExtractDropDownValueChanged (መተግበሪያ ፣ ክስተት) stringNumber = app. AreastoExtractDropDown. Value;
app.regionsToExtract = str2double (stringNumber);
አበቃ
አበቃ
የሚመከር:
በ Flick ውስጥ የጨዋታ ንድፍ በ 5 ደረጃዎች 5 ደረጃዎች
በ 5 ደረጃዎች ውስጥ በ Flick ውስጥ የጨዋታ ንድፍ -ፍሊክስ ጨዋታን በተለይም በእውነቱ እንደ እንቆቅልሽ ፣ የእይታ ልብ ወለድ ወይም የጀብድ ጨዋታ የመሰለ ቀላል መንገድ ነው።
የአርዱዲኖ መኪና የተገላቢጦሽ የመኪና ማቆሚያ ማስጠንቀቂያ ስርዓት - ደረጃዎች በደረጃ: 4 ደረጃዎች
የአርዱዲኖ መኪና የተገላቢጦሽ የመኪና ማቆሚያ ማንቂያ ስርዓት | ደረጃዎች በደረጃ-በዚህ ፕሮጀክት ውስጥ አርዱዲኖ UNO እና HC-SR04 Ultrasonic Sensor ን በመጠቀም ቀላል የአርዱዲኖ መኪና የተገላቢጦሽ የመኪና ማቆሚያ ዳሳሽ ወረዳ እቀዳለሁ። ይህ በአርዱዲኖ ላይ የተመሠረተ የመኪና ተገላቢጦሽ የማስጠንቀቂያ ስርዓት ለራስ ገዝ አሰሳ ፣ ሮቦት ሬንጅንግ እና ለሌላ ክልል አር
በ Raspberry Pi 4B ላይ የፊት ለይቶ ማወቅ በ 3 ደረጃዎች 3 ደረጃዎች
በ Raspberry Pi 4B ላይ የፊት ለይቶ ማወቅ በ 3 እርከኖች-በዚህ መመሪያ ውስጥ የሹንያፊትን ቤተመፃሕፍት በመጠቀም ከ Rasyaberry O/S ጋር Raspberry Pi 4 ላይ የፊት ለይቶ ማወቅን እናከናውናለን። ሹነፊታ የፊት መታወቂያ/ማወቂያ ቤተ -መጽሐፍት ነው። ፕሮጀክቱ ፈጣን የመለየት እና የማወቅ ፍጥነትን ለማሳካት ያለመ ነው
የማትላብ MEX ፋይል ማድረግ - 3 ደረጃዎች
የማትላብ MEX ፋይል ማድረግ -የተጠናከረ ሲ ኮድን ከማትላብ ጋር እንዴት ማዋሃድ እንደሚቻል መመሪያዎች። MEX MATLAB አስፈፃሚ ማለት ነው። MEX- ፋይሎች ከ C ወይም ከ Fortran ምንጭ ኮድ የተሠሩ በተለዋዋጭ የተገናኙ ንዑስ መመሪያዎች ናቸው ፣ ሲሰበሰብ ከ MATLAB ውስጥ በተመሳሳይ መንገድ ሊሠራ ይችላል
የማትላብ መሰረታዊ ነገሮች - 6 ደረጃዎች
የማትላብ መሰረታዊ ነገሮች - ይህ አስተማሪ የማትላብን አንዳንድ መሰረታዊ ተግባሮችን ይሸፍናል። ማትላብን ወቅታዊ ተግባርን በውስጣዊ ሁኔታ እንዲሠራ እና ሴራ እንዴት እንደሚሰራ እና በምትኩ ከኤክሴል ፋይል ተመሳሳይ ወቅታዊ ተግባርን እንዴት እንደሚጎትቱ እና እንደሚያሴሩት ይማራሉ።