Áp dụng Bộ lọc trung bình và Wiener cho hình ảnh trong Python

Trong nhiều trường hợp, bạn phải khử nhiễu hình ảnh để nâng cao chất lượng hình ảnh của chúng. Điều này hữu ích khi bạn muốn cải thiện độ rõ nét tổng thể của hình ảnh. Ngoài ra, khử nhiễu được sử dụng để xử lý trước hình ảnh trước khi phân tích thêm như nhận dạng, phân đoạn, v.v. Bộ lọc trung vị và wiener thường được sử dụng để khử nhiễu và làm mịn hình ảnh. Vì vậy, hãy xem cách áp dụng các bộ lọc trung bình và wiener trên hình ảnh trong Python.

Thư viện Python để áp dụng bộ lọc hình ảnh trung bình và Wiener

Để áp dụng các bộ lọc trung bình và wiener trên hình ảnh, chúng tôi sẽ sử dụng Aspose.Imaging for Python - một thư viện xử lý hình ảnh mạnh mẽ cho phép bạn thao tác với hình ảnh một cách dễ dàng. Để sử dụng thư viện, bạn có thể tải xuống hoặc cài đặt nó bằng lệnh sau.

> pip install aspose-imaging-python-net 

Áp dụng Bộ lọc trung bình cho một hình ảnh trong Python

Bộ lọc trung vị là một phương pháp khử nhiễu thường được sử dụng sử dụng kỹ thuật lọc số phi tuyến. Sau đây là các bước để áp dụng bộ lọc trung vị cho hình ảnh trong Python.

  • Đầu tiên, tải hình ảnh bằng phương thức Image.load().
  • Sau đó, truyền hình ảnh sang loại RasterImage.
  • Tạo một thể hiện của lớp MedianFilterOptions và khởi tạo nó với kích thước của hình chữ nhật.
  • Áp dụng bộ lọc trung vị bằng phương pháp RasterImage.filter(Rectangle, MedianFilterOptions).
  • Cuối cùng, lưu ảnh đã lọc bằng phương thức RasterImage.save().

Mẫu mã sau đây cho biết cách áp dụng bộ lọc trung vị cho một hình ảnh trong 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
# Tải hình ảnh nhiễu 
with Image.load(os.path.join(data_dir, "template.gif")) as image:
	# Truyền hình ảnh vào RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Tạo một thể hiện của lớp MedianFilterOptions và đặt kích thước, Áp dụng bộ lọc MedianFilterOptions cho đối tượng RasterImage và Lưu hình ảnh kết quả
		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"))

Dưới đây là hình ảnh trước và sau khi áp dụng bộ lọc trung vị.

Áp dụng bộ lọc trung bình cho hình ảnh Python

Áp dụng Bộ lọc Gauss Wiener cho một hình ảnh trong Python

Gauss wiener là một phương pháp thường được sử dụng khác để tăng cường độ rõ nét và giảm nhiễu trong ảnh. Chúng ta hãy xem các bước cần thiết để áp dụng bộ lọc Gauss wiener cho một hình ảnh trong Python.

  • Đầu tiên, tải hình ảnh bằng phương thức Image.load().
  • Sau đó, truyền hình ảnh sang loại RasterImage.
  • Tạo một thể hiện của lớp GaussWienerFilterOptions và khởi tạo nó với kích thước bán kính và giá trị mịn.
  • (Tùy chọn) Để có được hình ảnh thang độ xám, hãy đặt thuộc tính GaussWienerFilterOptions.grayscale thành true.
  • Áp dụng bộ lọc wiener Gauss bằng phương pháp RasterImage.filter(Rectangle, GaussWienerFilterOptions).
  • Cuối cùng, lưu hình ảnh thu được bằng phương thức RasterImage.save().

Mẫu mã sau đây cho biết cách áp dụng bộ lọc Gauss wiener cho một hình ảnh trong 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
# tải hình ảnh
with Image.load(os.path.join(data_dir, "template.jpg")) as image:
	# Truyền hình ảnh vào RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Tạo một thể hiện của lớp GaussWienerFilterOptions và đặt kích thước bán kính và giá trị mịn.
		options = GaussWienerFilterOptions(12, 3)
		options.grayscale = True
		# Áp dụng bộ lọc MedianFilterOptions cho đối tượng RasterImage và Lưu hình ảnh kết quả
		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"))

Dưới đây là hình ảnh trước và sau khi áp dụng bộ lọc Gauss wiener với tùy chọn thang độ xám.

Áp dụng Bộ lọc Gauss Weiner cho Image Greyscaling

Sau đây là hình ảnh trước và sau khi áp dụng bộ lọc Gauss wiener mà không cần thang độ xám.

Áp dụng bộ lọc màu Gauss Weiner cho hình ảnh

Bộ lọc Wiener chuyển động cho một hình ảnh trong Python

Bộ lọc wiener chuyển động được sử dụng để giảm mờ hoặc giảm chất lượng do mờ chuyển động. Loại mờ này xảy ra do chuyển động tương đối giữa máy ảnh và đối tượng. Sau đây là các bước để áp dụng bộ lọc wiener chuyển động cho một hình ảnh trong Python.

  • Đầu tiên, tải hình ảnh bằng phương thức Image.load().
  • Sau đó, truyền hình ảnh sang loại RasterImage.
  • Tạo một thể hiện của lớp MotionWienerFilterOptions và khởi tạo nó với chiều dài, giá trị mịn và góc.
  • Áp dụng bộ lọc wiener chuyển động bằng phương pháp RasterImage.filter(Rectangle, MotionWienerFilterOptions).
  • Cuối cùng, lưu hình ảnh thu được bằng phương thức RasterImage.save().

Mẫu mã sau đây cho biết cách áp dụng bộ lọc wiener chuyển động cho hình ảnh trong 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
# tải hình ảnh
with Image.load(os.path.join(data_dir, "template.gif")) as image:
	# Truyền hình ảnh vào RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Tạo một thể hiện của lớp MotionWienerFilterOptions và đặt độ dài, giá trị mịn và góc.
		options = MotionWienerFilterOptions(50, 9, 90)
		options.grayscale = True
		# Áp dụng bộ lọc MedianFilterOptions cho đối tượng RasterImage và Lưu hình ảnh kết quả
		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"))
Áp dụng bộ lọc Motion Weiner cho hình ảnh trong Python

Thư viện bộ lọc hình ảnh Python miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí và áp dụng các bộ lọc trung bình và bộ lọc wiener cho hình ảnh mà không bị giới hạn đánh giá.

Ứng dụng chỉnh sửa ảnh trực tuyến miễn phí

Sử dụng công cụ chỉnh sửa hình ảnh dựa trên web miễn phí của chúng tôi để chỉnh sửa hình ảnh của bạn trực tuyến. Trình chỉnh sửa hình ảnh này sử dụng Aspose.Imaging for Python và không yêu cầu bạn tạo tài khoản.

Phần kết luận

Trong bài viết này, bạn đã học cách áp dụng các bộ lọc trung bình và wiener cho hình ảnh trong Python. Các bước và mẫu mã đã trình bày cách áp dụng các loại bộ lọc khác nhau để khử nhiễu hình ảnh theo chương trình. Ngoài ra, chúng tôi đã đề cập đến cách giảm nhiễu của các đối tượng chuyển động trong ảnh bằng cách sử dụng bộ lọc wiener chuyển động. Cuối cùng, chúng tôi đã cung cấp cho bạn một ứng dụng chỉnh sửa ảnh trực tuyến hoàn toàn miễn phí và bạn có thể sử dụng nó mà không cần đăng ký.

Bạn có thể khám phá thêm về thư viện xử lý ảnh Python bằng cách sử dụng tài liệu. Ngoài ra, bạn có thể chia sẻ thắc mắc của mình với chúng tôi qua diễn đàn của chúng tôi.

Xem thêm