cant seem to make the background fully black

2 次查看(过去 30 天)
I have uploaded two images, one is the original image and the other one is a processed image. i am wondering how can i make the background fully black because i cant seem to make the bottom right fully black in the processed image. i have processed the image by thresholding, binarising and inverting it.

采纳的回答

Matt J
Matt J 2022-9-30
编辑:Matt J 2022-9-30
A=imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1141370/original.png');
B=imquantize(A,multithresh(A,3));
C=1;
for i=1:4
C=C & ~bwareafilt(B==i,[80000,inf]);
end
imshow(C,[])
  2 个评论
Image Analyst
Image Analyst 2022-10-1
If you want the shapes to have their original gray level and class (like uint8 or uint16), instead of being a binary (logical) image, you can use that mask to set the background to zero and leave the original gray levels untouched:
% Blacken background:
A(~C) = 0;

请先登录,再进行评论。

更多回答(2 个)

Image Analyst
Image Analyst 2022-9-30
Looks a lot like homework. Is it?
What I'd try first is to create a background and then subtract it from the image. You can construct a background by getting the values along the edges, or the corners and then using biliear interpolation, like with interp1 to build the background. Should be easy - try it.

Matt J
Matt J 2022-9-30
编辑:Matt J 2022-10-1
A=imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1141370/original.png');
B=imclose(edge(A),strel('disk',5));
C=imfill(B,'holes');
imshow(C,[])

类别

Help CenterFile Exchange 中查找有关 Denoising and Compression 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by