W poprzednim poście na blogu pokazaliśmy, jak dodać efekt rozmycia do obrazów. Dzisiaj pokażemy Ci, jak zastosować filtry mediany i Wienera, które są powszechnie używane do odszumiania i wygładzania obrazów. Zobaczmy więc, jak programowo zastosować filtry median i Wiener do obrazu w Javie.
- Java API do stosowania filtrów obrazu Mediana i Wiener
- Zastosuj filtr mediany do obrazu w Javie
- Zastosuj filtr Gaussa Wienera do obrazu
- Motion Wiener Filtrowanie obrazu
Java API do stosowania filtrów obrazu Mediana i Wiener — do pobrania za darmo
Aby zastosować filtry mediany i Wienera do obrazów, użyjemy Aspose.Imaging for Java. Jest to potężny interfejs API do edycji obrazów do manipulowania obrazami z poziomu aplikacji Java. Możesz pobrać interfejs API lub zainstalować go przy użyciu następujących konfiguracji Mavena.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging</artifactId>
<version>22.9</version>
</dependency>
Zastosuj filtr mediany do obrazu w Javie
Filtr medianowy to nieliniowa technika filtrowania cyfrowego, która jest popularnym sposobem odszumiania obrazów. Poniżej przedstawiono kroki, aby zastosować filtr mediany do obrazu w Javie.
- Najpierw załaduj obraz metodą Image.load().
- Następnie rzutuj obraz na typ RasterImage.
- Utwórz instancję klasy MedianFilterOptions i zainicjuj ją rozmiarem prostokąta.
- Zastosuj filtr mediany za pomocą metody RasterImage.filter(Rectangle, MedianFilterOptions).
- Na koniec zapisz wynikowy obraz za pomocą metody RasterImage.save().
Poniższy przykładowy kod pokazuje, jak zastosować filtr mediany do obrazu w Javie.
// Załaduj zaszumiony obraz
Image image = Image.load("jack.jpg");
// rzuć obraz do RasterImage
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// Utwórz instancję klasy MedianFilterOptions i ustaw rozmiar.
MedianFilterOptions options = new MedianFilterOptions(4);
// Zastosuj filtr MedianFilterOptions do obiektu RasterImage.
rasterImage.filter(image.getBounds(), options);
// Zapisz wynikowy obraz
image.save("Jac_median_denoise.jpg");
Poniżej znajduje się obraz przed i po zastosowaniu filtra medianowego.
Zastosuj filtr Gaussa Wienera do obrazu w Javie
Wiener Gaussa to kolejna powszechnie stosowana metoda gradacji obrazu poprzez minimalizację szumów addytywnych i rozmycia. Poniżej przedstawiono kroki, aby zastosować filtr Gaussa Wienera do obrazu w Javie.
- Najpierw załaduj obraz metodą Image.load().
- Następnie rzutuj obraz na typ RasterImage.
- Utwórz instancję klasy GaussWienerFilterOptions i zainicjuj ją rozmiarem promienia i wartością wygładzania.
- (Opcjonalnie) Aby uzyskać obraz w skali szarości, użyj metody GaussWienerFilterOptions.setGrayscale(true).
- Zastosuj filtr Gaussa Wienera za pomocą metody RasterImage.filter(Rectangle, GaussWienerFilterOptions).
- Na koniec zapisz wynikowy obraz za pomocą metody RasterImage.save().
Poniższy przykładowy kod pokazuje, jak zastosować filtr Gaussa Wienera do obrazu w Javie.
// Załaduj obraz
Image image = Image.load("jack.jpg");
// rzuć obraz do RasterImage
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// Utwórz instancję klasy GaussWienerFilterOptions i ustaw rozmiar promienia oraz wartość wygładzania.
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.setGrayscale(true);
// Zastosuj filtr GaussWienerFilterOptions do obiektu RasterImage.
rasterImage.filter(image.getBounds(), options);
// Zapisz wynikowy obraz
image.save("Jac_guass_weiner.jpg");
Poniżej znajduje się obraz przed i po zastosowaniu filtra Gaussa Wienera z opcją skali szarości.
Poniżej przedstawiono obraz przed i po zastosowaniu filtra Gaussa Wienera bez skali szarości.
Zastosuj Motion Wiener Filter do obrazu w Javie
Filtr ruchu Wienera służy do usuwania rozmycia obrazu, które powstaje z powodu poruszających się obiektów. Poniżej przedstawiono kroki, aby zastosować filtr wienera ruchu do obrazu w Javie.
- Najpierw załaduj obraz metodą Image.load().
- Następnie rzutuj obraz na typ RasterImage.
- Utwórz instancję klasy MotionWienerFilterOptions i zainicjuj ją długością, wartością wygładzenia i kątem.
- Zastosuj filtr ruchu Wienera za pomocą metody RasterImage.filter(Rectangle, MotionWienerFilterOptions).
- Na koniec zapisz wynikowy obraz za pomocą metody RasterImage.save().
Poniższy przykładowy kod pokazuje, jak zastosować filtr wiener ruchu do obrazu w Javie.
// Załaduj obraz
Image image = Image.load("jack.jpg");
// rzuć obraz do RasterImage
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// Utwórz instancję klasy MotionWienerFilterOptions i ustaw długość, wartość wygładzania oraz kąt.
MotionWienerFilterOptions options = new MotionWienerFilterOptions(10, 2, 10);
//options.setGrayscale(true);
// Zastosuj filtr MotionWienerFilterOptions do obiektu RasterImage.
rasterImage.filter(image.getBounds(), options);
// Zapisz wynikowy obraz
image.save("Jac_motion_weiner.jpg");
Java Median i Wiener Image Filtering API — Uzyskaj bezpłatną licencję
Możesz uzyskać bezpłatną tymczasową licencję i stosować filtry mediany i Wienera do obrazów bez ograniczeń oceny.
Wniosek
W tym artykule nauczyłeś się, jak stosować filtry mediany i Wienera do obrazów w Javie. Ponadto omówiliśmy, jak zredukować szum poruszających się obiektów na obrazie. Możesz łatwo użyć tych funkcji w swojej aplikacji Java, aby zintegrować możliwości edycji obrazu.
Czytaj więcej
Więcej informacji na temat interfejsu API przetwarzania obrazu Java można znaleźć w dokumentacji. Możesz także podzielić się z nami swoimi pytaniami za pośrednictwem naszego forum.