clc;
关闭所有;
清晰;
工作空间;
格式长g;
格式紧凑的;
字形大小= 25;
baseFileName =“mdb005.png”;
文件夹= [“C: \用户桌面\ \阿里\ Miaspng”];
fullFileName = fullfile(文件夹,baseFileName);
grayImage = imread (fullFileName);
[rows, columns, numberOfColorChannels] = size(grayImage);
如果numberOfColorChannels > 1
grayImage = rgb2gray (grayImage);
结束
次要情节(2、3、1);
imshow (grayImage []);
轴在;
标题= sprintf (“原始灰度图像”);
标题(标题,“字形大小”字形大小,“翻译”,“没有”);
drawnow;
惠普= impixelinfo ();
集(gcf,“单位”,“归一化”,“OuterPosition”, [0 0 1 1]);
集(gcf,“工具栏”,“没有”,“菜单”,“没有”);
集(gcf,“名字”,“演示”,“NumberTitle”,“关闭”)
drawnow;
meanIntensity =意味着(grayImage (:))
如果meanIntensity < 35
mask = grayImage > 190;
elseifmeanIntensity < 40
mask = grayImage > 185;
elseifmeanIntensity < 45
mask = grayImage > 182;
elseifmeanIntensity < 50
mask = grayImage > 175;
elseifmeanIntensity < 55
mask = grayImage > 170;
elseifmeanIntensity < 60
mask = grayImage > 165;
elseifmeanIntensity < 65
mask = grayImage > 155;
elseifmeanIntensity < 70
mask = grayImage > 150;
结束
次要情节(2、3、2);
imshow(面具);
轴在;
轴图像;
标题(的二进制映像的面具,“字形大小”、字形大小);
drawnow;
labeledImage = bwlabel(面具);
道具= regionprops (labeledImage,“区域”,“重心”);
allAreas =([道具。区域),“下”);
allCentroids = [props.Centroid];
centroidsX = allCentroids(1:2:结束);
centroidsY = allCentroids(2:2:结束);
margin = 0.34 * column;
margin = 0.15 * rows;
> < (columns - margin)) & . > < (columns - margin)...
(centroidsY > margin & centroidsY < (rows - margin));
指数=找到(管理员);
newMask = ismember(labeledImage, indexes);
次要情节(2、3、3);
imshow (newMask);
轴在;
轴图像;
标题(“标签删除”,“字形大小”、字形大小);
drawnow;
maskedGrayImage = grayImage;
maskedGrayImage (~ newMask) = 0;
次要情节(2、3、4);
imshow (maskedGrayImage);
轴在;
轴图像;
标题(“蒙面灰度图像”,“字形大小”、字形大小);
drawnow;
IM_cb = imclearborder (maskedGrayImage);
BW2 = bwareaopen(IM_cb, 150);
BW_filled = imfill (BW2,“黑洞”);
次要情节(2、3、5);
imshow (BW_filled);
轴在;
轴图像;
标题(“小行消除”,“字形大小”、字形大小);
drawnow;
labeledImage = bwlabel (BW_filled);
测量= regionprops (labeledImage,“区域”);
allAreas = [measurements.Area];
[biggestArea, indexOfBiggest] = sort(所有区域,“下”);
ismember(labeledImage, indexOfBiggest(1));
biggestBlob = biggestBlob > 0;
次要情节(2、3、6);
imshow (biggestBlob []);
轴在;
轴图像;
标题(“最后一次”,“字形大小”、字形大小);
drawnow;