Använd median- och wienerfilter på bilder i Python

I olika fall måste du försvaga bilder för att förbättra deras visuella kvalitet. Detta är användbart när du vill förbättra den övergripande klarheten i dina bilder. Denoising används också för att förbearbeta bilder innan ytterligare analys som igenkänning, segmentering och så vidare. Median- och wienerfilter används vanligtvis för att försvaga och jämna ut bilderna. Så låt oss ta en titt på hur man använder median- och wienerfilter på bilder i Python.

Python-bibliotek för att tillämpa median- och wienerbildfilter

För att tillämpa median- och wienerfiltren på bilder kommer vi att använda Aspose.Imaging for Python – ett kraftfullt bildbehandlingsbibliotek som låter dig manipulera bilder utan ansträngning. För att använda biblioteket kan du antingen ladda ner eller installera det med följande kommando.

> pip install aspose-imaging-python-net 

Använd medianfilter på en bild i Python

Medianfiltret är en vanligt förekommande denoising-metod som använder en ickelinjär digital filtreringsteknik. Följande är stegen för att tillämpa ett medianfilter på en bild i Python.

  • Ladda först in bilden med metoden Image.load().
  • Kasta sedan bilden till RasterImage-typ.
  • Skapa en instans av MedianFilterOptions-klassen och initiera den med storleken på rektangeln.
  • Använd medianfiltret med metoden RasterImage.filter(Rectangle, MedianFilterOptions).
  • Slutligen, spara den filtrerade bilden med metoden RasterImage.save().

Följande kodexempel visar hur man tillämpar ett medianfilter på en bild i Python.

import aspose.pycore as aspycore
from aspose.imaging import Image, RasterImage
from aspose.imaging.imagefilters.filteroptions import MedianFilterOptions
import os


if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
# Ladda den brusiga bilden 
with Image.load(os.path.join(data_dir, "template.gif")) as image:
	# Kasta bilden till RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Skapa en instans av MedianFilterOptions-klassen och ställ in storleken, använd MedianFilterOptions-filtret på RasterImage-objektet och spara den resulterande bilden
		options = MedianFilterOptions(4)
		raster_image.filter(image.bounds, options)
		image.save(os.path.join(data_dir, "result.gif"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.gif"))

Nedan är bilden före och efter applicering av medianfiltret.

Använd medianfilter på Image Python

Använd Gauss Wiener Filter på en bild i Python

Gauss wiener är en annan vanlig metod för att förbättra klarheten och minska brus i bilderna. Låt oss ta en titt på de steg som krävs för att tillämpa Gauss wiener-filtret på en bild i Python.

  • Ladda först in bilden med metoden Image.load().
  • Kasta sedan bilden till RasterImage-typ.
  • Skapa en instans av GaussWienerFilterOptions-klassen och initiera den med radiestorlek och jämnt värde.
  • (Valfritt) För att få en gråskalebild, ställ in egenskapen GaussWienerFilterOptions.grayscale till 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 wienerfilter på en bild i Python.

import aspose.pycore as aspycore
from aspose.imaging import Image, RasterImage
from aspose.imaging.imagefilters.filteroptions import GaussWienerFilterOptions
import os


if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
# Ladda bilden
with Image.load(os.path.join(data_dir, "template.jpg")) as image:
	# Kasta bilden till RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Skapa en instans av klassen GaussWienerFilterOptions och ställ in radiestorlek och jämnt värde.
		options = GaussWienerFilterOptions(12, 3)
		options.grayscale = True
		# Använd MedianFilterOptions-filtret på RasterImage-objektet och spara den resulterande bilden
		raster_image.filter(image.bounds, options)
		image.save(os.path.join(data_dir, "result.jpg"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.jpg"))

Nedan är bilden före och efter applicering av Gauss wienerfiltret med gråskalealternativet.

Applicera Gauss Weiner-filter på bildgråskalning

Följande är bilden före och efter applicering av Gauss wienerfilter utan gråskalning.

Applicera Gauss Weiner färgfilter på bilden

Motion Wiener Filter för en bild i Python

Rörelse wienerfilter används för att minska suddigheten eller försämringen som orsakas av rörelseoskärpa. Denna typ av oskärpa uppstår på grund av den relativa rörelsen mellan kameran och objektet. Följande är stegen för att tillämpa motion wiener-filtret på en bild i Python.

  • Ladda först in bilden med metoden Image.load().
  • Kasta sedan bilden till RasterImage-typ.
  • Skapa en instans av MotionWienerFilterOptions-klassen 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 applicerar ett motion wiener-filter på en bild i Python.

import aspose.pycore as aspycore
from aspose.imaging import Image, RasterImage
from aspose.imaging.imagefilters.filteroptions import MotionWienerFilterOptions
import os


if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
# Ladda bilden
with Image.load(os.path.join(data_dir, "template.gif")) as image:
	# Kasta bilden till RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Skapa en instans av MotionWienerFilterOptions-klassen och ställ in längden, det jämna värdet och vinkeln.
		options = MotionWienerFilterOptions(50, 9, 90)
		options.grayscale = True
		# Använd MedianFilterOptions-filtret på RasterImage-objektet och spara den resulterande bilden
		raster_image.filter(image.bounds, options)
		image.save(os.path.join(data_dir, "result.gif"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.gif"))
Använd Motion Weiner-filter på bild i Python

Gratis Python Image Filter Library

Du kan skaffa en gratis tillfällig licens och använda median- och wienerfilter på bilder utan utvärderingsbegränsningar.

Gratis app för bildredigering online

Använd vårt gratis webbaserade bildredigeringsverktyg för att redigera dina bilder online. Denna bildredigerare använder Aspose.Imaging för Python och ber dig inte att skapa ett konto.

Slutsats

I den här artikeln har du lärt dig hur du använder median- och wienerfilter på bilder i Python. Stegen och kodexemplen har visat hur man tillämpar olika typer av filter för att försvaga bilder programmatiskt. Dessutom har vi behandlat hur man minskar bruset från rörliga föremål i en bild med hjälp av ett rörelse-wiener-filter. Slutligen har vi försett dig med en online-bildredigeringsapp som är helt gratis och du kan använda den utan att registrera dig.

Du kan utforska mer om Pythons bildbehandlingsbibliotek med dokumentation. Du kan också dela dina frågor med oss via vårt forum.

Se även