create mask that separates objects from white background

조회 수: 6 (최근 30일)
Finn Hartley
Finn Hartley 2021년 2월 11일
댓글: Finn Hartley 2021년 2월 28일
Hi,
I need to create a mask for fruits placed inside a white box so i can analsyse the properties of the fruit. A green apple is shown in the attached image for example but the fruits could be a range of colours (excluding black/whitish colours), so i require code to segment these different coloured fruits into a mask that seperates them from the white backgoreund, but I am struggling on how to approach this. Any help would be appreciated.
Thankyou

채택된 답변

BC
BC 2021년 2월 27일
편집: BC 2021년 2월 28일
Hi, maybe the code below can help start you off! It's not a perfect segmentation, and I'm fairly new to MATLAB so someone else might have a better method. This link may also help you too, have a look under "Functions", then "Segmentation Techniques".
apple = imread("apple.jpg"); % read in image name
grayapple = rgb2gray(apple); % convert image to grayscale
level = graythresh(grayapple); % get threshold value
BWapple = imbinarize(grayapple,level); % binarize image using the threshold value
BWopen = bwpropfilt(~BWapple,"area",1,"largest"); % filter only the 1 largest blob. The ~ inverts the mask
BWfilled = imfill(BWopen,"holes"); % fill any missing holes
finalimage = imoverlay(apple,~BWfilled,"k"); % burn the mask onto the original image, with black (k) background
imshow(finalimage) % show the final image
  댓글 수: 1
Finn Hartley
Finn Hartley 2021년 2월 28일
Hi BC,
Thanks for your help! thats exactly what im looking for.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Images에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by