Enclosing Boundary - for blobs
5 次查看(过去 30 天)
显示 更早的评论
Hi all
Is it possible to get the boundary central more dense region - ignoring the blobs on the side
6 个评论
采纳的回答
更多回答(1 个)
DGM
2021-7-3
编辑:DGM
2021-7-4
I'll throw this out there. I'm assuming that the goal here is density-dependent (linear) mask constriction. On that assumption, I'm avoiding erosion and using an averaging filter and thresholding. It works, but it would likely require adjustment, considering I don't know what the particular limits are or what other images will look like.
% parameters
frad = 15;
masklevel = 0.1;
outlevel = 0.18;
% flattened, binarized image
inpict = rgb2gray(imread('capture.jpg'))>128;
% if you want to filter by local density, maybe use an avg filter
wpict = imfilter(double(inpict),fspecial('disk',frad));
% first pass to get rid of stray exterior points
mask = double(bwareafilt(wpict>masklevel,1));
wpict = wpict.*mask;
% second pass to tighten group following density
wpict = wpict>outlevel;
% as opposed to erosion which follows envelope
%wpict = imerode(wpict,strel('disk',10));
% for viewing, i'm just going to slap together a weighted mean
% you can use whatever you want. wpict is just a binary mask like any other.
k = 0.3;
comp = inpict*k + wpict*(1-k);
imshow(comp)

0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Computer Vision with Simulink 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
