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
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);
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;
- 1. Matrix w programie MATLAB
- 2. Java BufferedImage jak sprawdzić, czy piksel jest przezroczysty
- 3. Wykrywanie siatki w programie Matlab
- 4. Generowanie informacji o wersji w programie Matlab (Matlab Compiler)
- 5. Jak używać VBA do komórki w programie Excel 2007 przezroczysty
- 6. Prealokacja macierzy komórek w programie matlab
- 7. Jak wykreślić płaszczyznę 3D w programie Matlab?
- 8. jak ocenić pochodną funkcji w programie Matlab?
- 9. Działka wewnątrz pętli w programie MATLAB
- 10. Co robią przecinki końcowe w programie Matlab?
- 11. Jak rozpoznać błędy przepełnienia w programie Matlab?
- 12. Jak utworzyć wykres logu w programie Matlab
- 13. Jak wywołać funkcję Mathematica w programie Matlab?
- 14. Odczyt z pliku CSV w programie MATLAB
- 15. Jak sortować tablice struktur w programie MATLAB?
- 16. Obliczanie macierzy kowariancji w programie Matlab
- 17. Opis funkcji regresji w programie Matlab
- 18. W programie Matlab, jak zmienić orientację osi?
- 19. Jak zastąpić domyślny tekst w programie MATLAB
- 20. Gładkie wydruki kolorów w programie Matlab
- 21. Indeksowanie macierzy 2D w programie Matlab
- 22. Utwórz użytkownika w programie Devise z JSON
- 23. Kąty ciągłe w C++ (funkcja rozwijania eq w programie Matlab)
- 24. Jak rozpoznać łamanie punktów w tablicy numerycznej w programie MATLAB
- 25. Drukujesz w oknie poleceń bez 'ans =' w programie MATLAB?
- 26. utwórz zmienną matlab w obszarze roboczym jako globalną
- 27. Dlaczego mój obraz nie ładuje się prawidłowo w programie MATLAB?
- 28. Rendering i jakość obrazu w programie MATLAB dane
- 29. Średni filtr do wygładzania obrazów w programie Matlab
- 30. jak usunąć elementy przekątnej macierzy w programie MATLAB?
Dzięki @ ademing2. Czy masz krótki przykład? – omegaFlame
Edytowałem moją oryginalną odpowiedź na przykładzie. –
Dzięki. Ale obraz wyjściowy to tylko 1 x 1 i 87 bajtów. Jakieś pomysły? – omegaFlame