How can I segment blobs in a image using the threshold filter
조회 수: 5 (최근 30일)
이전 댓글 표시
I want to remove the spatter which I marked red in the following image using the threshold filter. Right now as you can see I used the default options of the binarize method
bw_left = imbinarize(v1_left);
To remove the spatter in the image I also tried to use the adaptive threshold filter which is included in the binarize method with a sensitivity from 0.7 till 1 with no luck. As you can see the image gets worse and looks very unstable (right image)
Iblur_left = imgaussfilt(left1, 2 ); % gaussian filter to remove noise in the image
%parameters vessel filtering
options.sigmas = '0.5:0.5:3'; % vector of scales on which the vesselness is computed
options.spacing ='[1;1.5]'; % input image spacing resolution - during hessian matrix
% computation, the gaussian filter kernel size in each dimension can
% be adjusted to account for different image spacing for different
% dimensions
options.tau = 0.5; % tau:(between 0.5 and 1)parameter that controls response uniformity
% -lower tau -> more intense output response
v1_left = vesselness2D(Iblur_left, options.sigmas,options.spacing, options.tau, true);
bw_left = imbinarize(v1_left, 'adaptive','sensitivity', 0.7);
figure;
imshowpair(v1_left, bw_left, 'montage');
Is there any way to remove those spatters in the image ?
Thank you for your help
댓글 수: 0
채택된 답변
Image Analyst
2018년 12월 9일
편집: Image Analyst
2018년 12월 9일
Why not simply use bwareafilt() to throw out blobs not in the correct size range?
Are the little blobs that are closer to the big blob supposed to be kept? Aren't they splatters too? Can you post the original gray scale image also?
댓글 수: 3
Image Analyst
2018년 12월 10일
편집: Image Analyst
2018년 12월 10일
If you're sure that the blob you want is always the biggest one, you can do
mask = bwareafilt(mask, 1); % Extract largest blob only.
If it'a always in a known location, then you can first scan the video to find the frame where it is. Then you can scan it again using that largest one as the mask for all frames to erase things outside of it, including blobs that might be mistakenly chosen as the blob you're interested in because they were the largest at one point in time. Then you can do some area filtering on the blobs inside the mask.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Image Processing and Computer Vision에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!