Effacer les filtres
Effacer les filtres

How can i somehow autofill black-spots in an RGB image.

1 vue (au cours des 30 derniers jours)
JAI PRAKASH
JAI PRAKASH le 4 Juin 2018

Réponse acceptée

Aditya Adhikary
Aditya Adhikary le 5 Juin 2018
These may help: imfill and regionfill.
  1 commentaire
JAI PRAKASH
JAI PRAKASH le 5 Juin 2018
Modifié(e) : JAI PRAKASH le 5 Juin 2018
Hey Thanks, But it does not work for complex problems
I used following code:
newimage=imread('City_AskAutofill.jpg');
R = newimage(:,:,1); % splitting RGB because regionfill need grayscale.
G = newimage(:,:,2);
B = newimage(:,:,3);
mask = uint8(R) < 2;
mask = imfill(mask,'holes');
mask = imerode(mask,strel('disk',10));
mask = imdilate(mask,strel('disk',20));
R_autofill = regionfill(R,mask);
mask = uint8(G) < 2;
mask = imfill(mask,'holes');
mask = imerode(mask,strel('disk',10));
mask = imdilate(mask,strel('disk',20));
G_autofill = regionfill(G,mask);
mask = uint8(B) < 2;
mask = imfill(mask,'holes');
mask = imerode(mask,strel('disk',10));
mask = imdilate(mask,strel('disk',20));
B_autofill = regionfill(B,mask);
newimage_autofill(:,:,1)=R_autofill;
newimage_autofill(:,:,2)=G_autofill;
newimage_autofill(:,:,3)=B_autofill;
imtool(newimage_autofill) % this is the image which you are seeing above.
But this approach is not effective on other problem, like I have mentioned further below.
How can I improve this approach. Thanks

Connectez-vous pour commenter.

Plus de réponses (1)

Image Analyst
Image Analyst le 5 Juin 2018
MATLAB does not have a sophisticated region filling algorithm like the bandage tool in Photoshop. If you want/need something like that, use Photoshop or figure out what algorithm they used and program it up yourself.

Produits


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by