Hello
I have a problem with the image display level, the problem is that I have black spots in the white part and I want to eliminate them
attaching the resulting image and the .mat file
thank you in advanceask.jpg

 採用された回答

Image Analyst
Image Analyst 2019 年 3 月 7 日

1 投票

Threshold the image and then call imfill()
binaryImage = grayImage > someValue;
binaryImage = imfill(binaryImage, 'holes');
If you want only holes of a certain diameter filled, then it's a little trickier, so write back.

5 件のコメント

dakhli mohamed
dakhli mohamed 2019 年 3 月 7 日
I just want to eliminate the maximum of black spots (pixels) in the white part and keep the whole black parity
Image Analyst
Image Analyst 2019 年 3 月 7 日
What do you mean by "eliminate" and "maximum of black spots"?
Did you try my suggestion and it doesn't do what you want?
dakhli mohamed
dakhli mohamed 2019 年 3 月 7 日
I tried but I found almost the same result
more simply I want the whole zonne in white does not contain any black pixel
dakhli mohamed
dakhli mohamed 2019 年 3 月 7 日
here is the image obtained after the execution of your code
net.jpg
Image Analyst
Image Analyst 2019 年 3 月 8 日
Then try this, if you want all black holes filled to white:
s = load('outputt.mat')
u = logical(s.u);
subplot(2, 1, 1);
imshow(u, 'InitialMagnification', 200);
axis('on', 'image');
% Fill in everything.
[rows, columns] = find(u);
boundaryIndexes = boundary(columns, rows);
hold on;
plot(columns(boundaryIndexes), rows(boundaryIndexes), 'r-', 'LineWidth', 2);
newImage = poly2mask(columns(boundaryIndexes), rows(boundaryIndexes), size(u, 1), size(u, 2));
subplot(2, 1, 2);
imshow(newImage, 'InitialMagnification', 200);
axis('on', 'image');
0000 Screenshot.png

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by