Mam obraz z przezroczystym tłem,ale kiedy otwieram go w MATLAB, dostaję czarne tło. „Nakładam ją na obraz tła. Jak mogę to wyświetlić? Próbowałem użyć funkcji alfa alpha(image,0)
ale ustawia cały mój obraz na 0. Czy mogę ustawić wartość alfa pojedynczych pikseli na 0? W ten sposób mogę uruchomić każdy piksel przez pętlę.
Nie jestem pewien, czy to pomaga, ale kiedy biegnę imfinfo("ryu1.png")
, Dostaję :
...
Transparency = "alpha"
SimpleTransparencyData = []
...
Odpowiedzi:
7 dla odpowiedzi № 1Możesz przeczytać na swoim obrazie za pomocą imread
. Musisz jednak określić dodatkowe parametry wyjściowe, jeśli chcesz pobrać kanał alfa. Musisz to nazwać tak:
[im, map, alpha] = imread("ryu1.png");
im
czy twój obraz jest wczytany, map
to mapa kolorów, którą zignorujemy, ale alpha
zawiera żądane informacje o przezroczystości. Pierwsze połączenie imshow
i zapisz uchwyt do obrazu, a następnie ustaw przezroczystość za pomocą alpha
kanał za pomocą set
dowództwo. Innymi słowy:
[im, map, alpha] = imread("ryu1.png");
f = imshow(im);
set(f, "AlphaData", alpha);
To powinno sprawić, że postać będzie przezroczysta.
Załóżmy, że masz już obraz tłazaładowany do MATLAB. Jeśli chcesz połączyć te dwa elementy, musisz zrobić matę alfa. Używasz kanału alfa i miksujesz oba. Innymi słowy, jeśli twój obraz tła jest przechowywany w img_background
i img_overlay
to obraz, który chcesz umieścić na górze tła, zrób to:
alphaMask = im2double(alpha); %// To make between 0 and 1
img_composite = im2uint8(double(img_background).*(1-alphaMask) + double(img_overlay).*alphaMask);
Pierwszy krok jest konieczny, ponieważ załadowana mapa alfa będzie tego samego typu co obraz wejściowy, który zwykle jest uint8
. Musimy przekonwertować to na double
obraz taki, że przechodzi pomiędzy 0
i 1
, i im2double
jest idealny do tego. Druga linia konwertuje każdy obraz na podwójną precyzję, abyśmy mogli obliczyć tę sumę i aby typy danych między maską alfa i obydwoma obrazami były zgodne. Następnie wracamy do uint8
. Następnie możesz pokazać ten końcowy obraz za pomocą imshow
.