问题描述
我正在尝试在黑白图像中找到细胞浓度的边界。我或多或少地画出了我想要达到的目标。边界可以平滑化,不必进行修补。但是无论如何离群值都应排除在外。那就是为什么我不想拿最低分。你能提出任何建议吗?我把原始图像作为示例作为附件。 BW Image
解决方法
尝试使用一些基本的图像处理概念来尝试一下。没有得到最好的结果,但是可能这可以作为起点。我以为它们是可以使用的更好的方法和模型。我还必须用白色垂直线裁剪原始图像的左侧。
使用过:
•均值过滤器
•窗口功能
•Sobel过滤器
clc;
clear;
close all;
File_Name = "Cell_Image.png";
Image = imread(File_Name);
Greyscale_Image = rgb2gray(Image);
Denoised_Image = filter2(fspecial('average',45),Greyscale_Image)/255;
Edge_Image = edge(Denoised_Image,'sobel');
[Image_Height,Image_Width,Depth] = size(Image);
Max_Image = zeros(Image_Height,Image_Width);
Index_Bank = zeros(1,Image_Width);
for Column_Scanner = 1: +1: Image_Width
Indicies = find(Edge_Image(:,Column_Scanner));
Index = max(Indicies,[],'all');
% Max_Image(Index+1,Column_Scanner) = 1;
if sum(Index) > 0
Index_Bank(1,Column_Scanner) = Index;
end
end
windowSize = 20;
b = (1/windowSize)*ones(1,windowSize);
a = 0.95;
Max_Data = filter(b,a,Index_Bank);
Max_Data = round(Max_Data);
for Column_Scanner = 1: +1: Image_Width
Image(Max_Data(1,Column_Scanner),Column_Scanner,1) = 255;
end
imshow(Image);