Em vários casos, você precisa reduzir o ruído das imagens para melhorar sua qualidade visual. Isso é útil quando você deseja melhorar a clareza geral de suas imagens. Além disso, a redução de ruído é usada para pré-processar imagens antes de análises adicionais, como reconhecimento, segmentação e assim por diante. Os filtros de mediana e wiener são comumente usados para reduzir o ruído e suavizar as imagens. Então, vamos dar uma olhada em como aplicar filtros de mediana e wiener em imagens em Python.
- Biblioteca Python para aplicar filtros de imagem Mediana e Wiener
- Aplicar filtro mediano a uma imagem em Python
- Aplicar filtro Gauss Wiener a uma imagem
- Filtragem de Motion Wiener de uma Imagem
- Aplicativo gratuito de edição de imagens on-line
Biblioteca Python para aplicar filtros de imagem de mediana e Wiener
Para aplicar os filtros de mediana e wiener em imagens, usaremos Aspose.Imaging for Python - uma poderosa biblioteca de processamento de imagens que permite manipular imagens sem esforço. Para usar a biblioteca, você pode baixar ou instalá-la usando o seguinte comando.
> pip install aspose-imaging-python-net
Aplicar filtro mediano a uma imagem em Python
O filtro mediano é um método de redução de ruído comumente usado que usa uma técnica de filtragem digital não linear. A seguir estão as etapas para aplicar um filtro mediano a uma imagem em Python.
- Primeiro, carregue a imagem usando o método Image.load().
- Em seguida, converta a imagem para o tipo RasterImage.
- Crie uma instância da classe MedianFilterOptions e inicialize-a com o tamanho do retângulo.
- Aplique o filtro mediano usando o método RasterImage.filter(Rectangle, MedianFilterOptions).
- Finalmente, salve a imagem filtrada usando o método RasterImage.save().
O exemplo de código a seguir mostra como aplicar um filtro mediano a uma imagem em 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
# Carregue a imagem com ruído
with Image.load(os.path.join(data_dir, "template.gif")) as image:
# Transmita a imagem para RasterImage
if aspycore.is_assignable(image, RasterImage):
raster_image = aspycore.as_of(image, RasterImage)
# Crie uma instância da classe MedianFilterOptions e defina o tamanho, aplique o filtro MedianFilterOptions ao objeto RasterImage e salve a imagem resultante
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"))
Abaixo está a imagem antes e depois de aplicar o filtro de mediana.
Aplicar filtro Gauss Wiener a uma imagem em Python
Gauss wiener é outro método comumente usado para aumentar a clareza e reduzir o ruído nas imagens. Vamos dar uma olhada nas etapas necessárias para aplicar o filtro Gauss wiener a uma imagem em Python.
- Primeiro, carregue a imagem usando o método Image.load().
- Em seguida, converta a imagem para o tipo RasterImage.
- Crie uma instância da classe GaussWienerFilterOptions e inicialize-a com o tamanho do raio e valor suave.
- (Opcional) Para obter uma imagem em tons de cinza, defina a propriedade GaussWienerFilterOptions.grayscale como true.
- Aplique o filtro Gauss Wiener usando o método RasterImage.filter(Rectangle, GaussWienerFilterOptions).
- Finalmente, salve a imagem resultante usando o método RasterImage.save().
O exemplo de código a seguir mostra como aplicar um filtro Gauss wiener a uma imagem em 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
# Carregar a imagem
with Image.load(os.path.join(data_dir, "template.jpg")) as image:
# Transmita a imagem para RasterImage
if aspycore.is_assignable(image, RasterImage):
raster_image = aspycore.as_of(image, RasterImage)
# Crie uma instância da classe GaussWienerFilterOptions e defina o tamanho do raio e o valor suave.
options = GaussWienerFilterOptions(12, 3)
options.grayscale = True
# Aplique o filtro MedianFilterOptions ao objeto RasterImage e salve a imagem resultante
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"))
Abaixo está a imagem antes e depois de aplicar o filtro Gauss wiener com a opção de tons de cinza.
A seguir está a imagem antes e depois de aplicar o filtro Gauss wiener sem escala de cinza.
Filtro Motion Wiener para uma imagem em Python
O filtro Motion Wiener é usado para reduzir o desfoque ou a degradação causada pelo desfoque de movimento. Esse tipo de desfoque acontece devido ao movimento relativo entre a câmera e o objeto. A seguir estão as etapas para aplicar o filtro motion wiener a uma imagem em Python.
- Primeiro, carregue a imagem usando o método Image.load().
- Em seguida, converta a imagem para o tipo RasterImage.
- Crie uma instância da classe MotionWienerFilterOptions e inicialize-a com comprimento, valor suave e ângulo.
- Aplique o filtro de movimento wiener usando o método RasterImage.filter(Rectangle, MotionWienerFilterOptions).
- Finalmente, salve a imagem resultante usando o método RasterImage.save().
O exemplo de código a seguir mostra como aplicar um filtro de movimento a uma imagem em 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
# Carregar a imagem
with Image.load(os.path.join(data_dir, "template.gif")) as image:
# Transmita a imagem para RasterImage
if aspycore.is_assignable(image, RasterImage):
raster_image = aspycore.as_of(image, RasterImage)
# Crie uma instância da classe MotionWienerFilterOptions e defina o comprimento, o valor de suavização e o ângulo.
options = MotionWienerFilterOptions(50, 9, 90)
options.grayscale = True
# Aplique o filtro MedianFilterOptions ao objeto RasterImage e salve a imagem resultante
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"))
Biblioteca gratuita de filtros de imagem Python
Você pode obter uma licença temporária gratuita e aplicar filtros de mediana e wiener às imagens sem limitações de avaliação.
Aplicativo gratuito de edição de imagens on-line
Use nossa ferramenta gratuita de edição de imagens baseada na web para editar suas imagens online. Este editor de imagem utiliza Aspose.Imaging para Python e não pede para você criar uma conta.
Conclusão
Neste artigo, você aprendeu como aplicar filtros de mediana e wiener a imagens em Python. As etapas e os exemplos de código demonstraram como aplicar diferentes tipos de filtros para reduzir o ruído de imagens programaticamente. Além disso, abordamos como reduzir o ruído de objetos em movimento em uma imagem usando um filtro de movimento. Por fim, fornecemos a você um aplicativo de edição de imagens on-line totalmente gratuito e você pode usá-lo sem se inscrever.
Você pode explorar mais sobre a biblioteca de processamento de imagem Python usando documentação. Além disso, você pode compartilhar suas dúvidas conosco através do nosso fórum.