2012-04-18 15 views
6

Zaimportowałem obraz w programie Matlab i zanim go wyświetlię, w jaki sposób sprawię, że tło obrazu stanie się przezroczyste? Na przykład, mam czerwoną piłkę na białym tle, w jaki sposób sprawiłbym, że białe piksele obrazu byłyby tranparentne, tak że widoczna jest tylko czerwona kulka, a białe piksele są przezroczyste?Utwórz przezroczysty piksel w programie Matlab

Odpowiedz

15

Należy upewnić się, że obraz jest zapisany w formacie "png". Następnie można użyć pliku 'Alpha' parameter pliku png, który jest macierzą, która określa przezroczystość każdego piksela z osobna. Jest to zasadniczo macierz logiczna, która ma wartość 1, jeśli piksel jest przezroczysty, a 0, jeśli nie. Można to łatwo zrobić za pomocą pętli for, o ile kolor, który ma być przezroczysty, zawsze ma tę samą wartość (tj. 255 dla uint8). Jeśli nie zawsze jest to ta sama wartość, można zdefiniować próg lub zakres wartości, w których piksel byłby przezroczysty.

Update:

generować najpierw funkcję matrycy Alpha iteracja obrazu i (zakładając, że zestaw biały być przezroczysta), gdy piksel jest biały, zestaw matrycy alfa w danym pikselu jako 1.

# X is your image 
[M,N] = size(X); 
# Assign A as zero 
A = zeros(M,N); 
# Iterate through X, to assign A 
for i=1:M 
    for j=1:N 
     if(X(i,j) == 255) # Assuming uint8, 255 would be white 
     A(i,j) = 1;  # Assign 1 to transparent color(white) 
     end 
    end 
end 

Następnie za pomocą tej nowo utworzonej osnowy alfa (a) w celu zapisania obrazu jako "png"

imwrite(X,'your_image.png','Alpha',A); 
+0

Dzięki @ ademing2. Czy masz krótki przykład? – omegaFlame

+0

Edytowałem moją oryginalną odpowiedź na przykładzie. –

+0

Dzięki. Ale obraz wyjściowy to tylko 1 x 1 i 87 bajtów. Jakieś pomysły? – omegaFlame

10

Uwaga: pętli w MATLAB należy unikać za wszelką cenę, ponieważ są one wolne. Przepisanie kodu w celu usunięcia pętli jest powszechnie zwane "wektoryzacją" kodu. W przypadku odpowiedzi ademing2 można to zrobić w następujący sposób:

A = zeros(size(X)); 
A(X == 255) = 1; 
Powiązane problemy