I föregående blogginlägg visade vi hur man lägger till oskärpa på bilderna. Idag kommer vi att visa dig hur du använder median- och wienerfilter, som vanligtvis används för att försvaga och jämna ut bilderna. Så låt oss se hur man applicerar median- och wienerfiler på en bild programmatiskt i Java.
- Java API för att tillämpa median- och Wiener-bildfilter
- Använd medianfilter på en bild i Java
- Använd Gauss Wiener Filter på en bild
- Motion Wiener-filtrering av en bild
Använd median- och Wiener-bildfilter i Java - API-installation
För att tillämpa median- och wienerfiltren på bilder kommer vi att använda Aspose.Imaging for Java. Det är ett kraftfullt bildredigerings-API för att manipulera bilderna inifrån Java-applikationerna. Du kan antingen ladda ner API:et eller installera det med följande Maven-konfigurationer.
<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>
Använd medianfilter på en bild i Java
Medianfiltret är en olinjär digital filtreringsteknik, vilket är ett populärt sätt att försvaga bilderna. Följande är stegen för att tillämpa ett medianfilter på en bild i Java.
- Ladda först bilden med metoden Image.load().
- Casta sedan bilden till typen RasterImage.
- Skapa en instans av klassen MedianFilterOptions och initiera den med storleken på rektangeln.
- Använd medianfiltret med metoden RasterImage.filter(Rectangle, MedianFilterOptions).
- Slutligen, spara den resulterande bilden med metoden RasterImage.save().
Följande kodexempel visar hur man tillämpar ett medianfilter på en bild i Java.
// Ladda den brusiga bilden
Image image = Image.load("jack.jpg");
// casta bilden till RasterImage
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// Skapa en instans av MedianFilterOptions-klassen och ställ in storleken.
MedianFilterOptions options = new MedianFilterOptions(4);
// Använd MedianFilterOptions-filtret på RasterImage-objektet.
rasterImage.filter(image.getBounds(), options);
// Spara den resulterande bilden
image.save("Jac_median_denoise.jpg");
Nedan är bilden före och efter applicering av medianfiltret.
Använd Gauss Wiener Filter på en bild i Java
Gauss wiener är en annan vanlig metod för bildgradering genom att minimera additivt brus och suddighet. Följande är stegen för att tillämpa gauss wiener-filtret på en bild i Java.
- Ladda först bilden med metoden Image.load().
- Casta sedan bilden till typen RasterImage.
- Skapa en instans av klassen GaussWienerFilterOptions och initiera den med radiestorlek och jämnt värde.
- (Valfritt) För att få en gråskalebild, använd metoden GaussWienerFilterOptions.setGrayscale(true).
- Använd gauss wienerfilter med metoden RasterImage.filter(Rectangle, GaussWienerFilterOptions).
- Slutligen, spara den resulterande bilden med metoden RasterImage.save().
Följande kodexempel visar hur man applicerar ett gauss wiener-filter på en bild i Java.
// Ladda bilden
Image image = Image.load("jack.jpg");
// casta bilden till RasterImage
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// Skapa en instans av klassen GaussWienerFilterOptions och ställ in radiestorlek och jämnt värde.
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.setGrayscale(true);
// Använd GaussWienerFilterOptions-filtret på RasterImage-objektet.
rasterImage.filter(image.getBounds(), options);
// Spara den resulterande bilden
image.save("Jac_guass_weiner.jpg");
Nedan är bilden före och efter applicering av gauss wienerfiltret med gråskalealternativet.
Följande är bilden före och efter applicering av gauss wienerfiltret utan gråskalning.
Använd Motion Wiener Filter för en bild i Java
Rörelse wienerfilter används för att ta bort suddighet i en bild som skapas på grund av de rörliga föremålen. Följande är stegen för att tillämpa motion wiener-filtret på en bild i Java.
- Ladda först bilden med metoden Image.load().
- Casta sedan bilden till typen RasterImage.
- Skapa en instans av klassen MotionWienerFilterOptions och initiera den med längd, jämnt värde och vinkel.
- Använd motion wiener-filter med metoden RasterImage.filter(Rectangle, MotionWienerFilterOptions).
- Slutligen, spara den resulterande bilden med metoden RasterImage.save().
Följande kodexempel visar hur man tillämpar ett motion wiener-filter på en bild i Java.
// Ladda bilden
Image image = Image.load("jack.jpg");
// casta bilden till RasterImage
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// Skapa en instans av MotionWienerFilterOptions-klassen och ställ in längden, det jämna värdet och vinkeln.
MotionWienerFilterOptions options = new MotionWienerFilterOptions(10, 2, 10);
//options.setGrayscale(true);
// Använd MotionWienerFilterOptions-filtret på RasterImage-objektet.
rasterImage.filter(image.getBounds(), options);
// Spara den resulterande bilden
image.save("Jac_motion_weiner.jpg");
Java Image Filtering API - Skaffa en gratis licens
Du kan skaffa en gratis tillfällig licens och använda median- och wienerfilter på bilder utan utvärderingsbegränsningar.
Slutsats
I den här artikeln har du lärt dig hur du använder median- och wienerfilter på bilder i Java. Dessutom har vi tagit upp hur man minskar bruset från rörliga föremål i en bild. Du kan enkelt använda dessa funktioner i din Java-applikation för att integrera bildredigeringsfunktioner.
Läs mer
Du kan utforska mer om Javas bildbehandlings-API med dokumentation. Du kan också dela dina frågor med oss via vårt forum.