读取二进制图像 binaryImage = imread8bmp; 骨架化处理 skeletonImage = bwmorphbinaryImageskelInf; 获取所有像素的连通性 connectivity = bwconncompskeletonImage; 消除分支条纹 skeletonImageconnectivityPixelIdxListcellfunnumel con
% 读取二进制图像 binaryImage = imread('8.bmp');
% 将图像转为二值化图像 binaryImage = im2bw(binaryImage);
% 骨架化处理 skeletonImage = bwmorph(binaryImage,'skel',Inf);
% 获取所有像素的连通性 connectivity = bwconncomp(skeletonImage);
% 消除分支条纹 skeletonImage(connectivity.PixelIdxList{cellfun(@numel, connectivity.PixelIdxList) < 3}) = 0;
% 计算条纹长度 pixelSize = 0.1; % 像素大小为0.1 nm stripeLengths = cellfun(@numel, connectivity.PixelIdxList) .* pixelSize;
% 对角线像素长度计算
% 消除短条纹
stripeLengths(stripeLengths < 0.483) = [];
% 存储剩余条纹 remainingStripes = skeletonImage; remainingStripes(connectivity.PixelIdxList(stripeLengths < 0.483)) = 0;
% 展示处理后的图像 imshow(remainingStripes);
原文地址: https://www.cveoy.top/t/topic/br95 著作权归作者所有。请勿转载和采集!