Lọc trung bình tỉa alpha trong xử lý ảnh năm 2024

MỤC LỤC..............................................................................................................

MỤC LỤC

LỜI MỞ ĐẦU........................................................................................................

  • MỤC LỤC..............................................................................................................
  • LỜI MỞ ĐẦU........................................................................................................
  • CHƯƠNG 1: TỔNG QUAN VỀ PHÉP NHÂN CHẬP.........................................
    • 1 Phép nhân chập là gì?................................................................................
    • 1 Định nghĩa về pháp nhân chập..................................................................
    • 1 Tính chất phép nhân chập..........................................................................
    • 1 Ưu điểm và nhược điểm trong phép nhân chập.........................................
  • CHƯƠNG 2: KỸ THUẬT LỌC SỐ TRONG XỬ LÝ ẢNH................................
    • 2 Khái niệm trong kỹ thuật lọc trơn nhiễu ảnh................................................
    • 2 Các phương pháp lọc ảnh..............................................................................
      • 2.2 Lọc trung vị.............................................................................................
      • 2.2 Lọc trung bình.........................................................................................
      • 2.2 Lọc hình học.........................................................................................
      • 2.2 Lọc điều hòa.........................................................................................
      • 2.2 Lọc phi điều hòa...................................................................................
  • PHẦN KẾT LUẬN..............................................................................................
  • TÀI LIỆU THAM KHẢO....................................................................................

CHƯƠNG 1: TỔNG QUAN VỀ PHÉP NHÂN CHẬP.........................................

1 Phép nhân chập là gì?................................................................................

Tích chập là kỹ thuật quan trọng trong Xử Lý Ảnh, được sử dụng chính

yếu trong các phép toán trên ảnh như: đạo hàm ảnh, làm trơn ảnh, trích xuất biên

cạnh trong ảnh. Trình bày về kỹ thuật tích chập trong lĩnh vực xử lý ảnh và cách

hiện thực nó sử dụng ngôn ngữ C++ có hỗ trợ của thư viện openCV.

1 Định nghĩa về pháp nhân chập..................................................................

Theo toán học, tích chập là phép toán tuyến tính, cho ra kết quả là một hàm

bằng việc tính toán dựa trên hai hàm đã có (f và g). Đối với phép lọc ảnh, phép

tích chập giữa ma trận lọc (kernel) và ảnh cho ra kết quả ảnh đã được xóa nhiễu.

Ta có công thức tích chập giữa hàm ảnh f(x, y) và bộ lọc k(x, y) (kích thước mxn)

như sau:

Thành phần không thể thiếu của phép tích chập là ma trận kernel. Điểm

neo (anchor point) của kernel sẽ quyết định vùng ma trận tương ứng trên ảnh để

tích chập, thông thường anchor point được chọn là tâm của kernel. Giá trị mỗi

phần tử trên kernel được xem như là hệ số tổ hợp với lần lượt từng giá trị độ xám

của điểm ảnh trong vùng tương ứng với kernel.

Phép tích chập được hình dung thực hiện bằng việc dịch chuyển ma trận

kernel lần lượt qua tất cả các điểm ảnh trong ảnh, bắt đầu từ góc bên trái trên của

ảnh. Và đặt anchor point tương ứng tại điểm ảnh đang xét. Ở mỗi lần dịch

chuyển, thực hiện tính toán kết quả mới cho điểm ảnh đang xét bằng công thức

tích chập.

Xem minh hoạ thực hiện: Ảnh minh hoạ theo thứ tự từ trái qua phải và từ

trên xuống dưới. Ảnh cuối cùng là kết quả sau khi thực hiện di chuyển kernel hết

toàn bộ ảnh. Ký hiệu: (1) ảnh nguồn, (2) kernel, (3) ảnh kết quả.

 Phân phối: f * g + f * h = f * (g + h)

Do tính chất kết hợp của phép tích chập, khi một phép xử lý ảnh yêu cầu thực

hiện tích chập liên tiếp với nhiều bộ lọc (kernel) f * g * h. Ta có thể tính toán

trước ma trận kernel để "giảm độ phức tạp tính toán" k = v * h do kích thước ma

trận kernel hầu như rất nhỏ so với ảnh. Lúc này, thay vì thực hiện tích chập theo

thứ tự r = (f * g) * h, ta thực hiện r = f * (v * h) = f * k.

Ký hiệu:

 - f: hàm ảnh

 - g: bộ lọc thứ nhất

 - h: bộ lọc thứ hai

 - r: hàm ảnh kết quả

1 Ưu điểm và nhược điểm trong phép nhân chập.........................................

Mỗi phần tử trong ma trận kernel nên là số nguyên: như trong ví dụ trên, các

phần tử trong kernel thực ra là số thực, tuy nhiên, tôi thực hiện chuyển sang ma

trận số nguyên với số hạng chung cho tất cả các phần tử, kết quả tích chập sẽ

nhân cho số hạng chung này.

Kernel nên thực hiện lưu trong mảng một chiều.

Tạo ma trận chỉ số truy cập nhanh, với cách này có thể truy cập nhanh đến

pixel trên ảnh, tương ứng với kernel mà không cần tính toán chỉ số thêm lần nữa.

Ví dụ, với kernel (size: 3x3, anchor point: center).

(-1;-1) (-1;0) (-1;1) (0;-1) (0;0) (0;1) (1;-1) (1;0) (1;1)

CHƯƠNG 2: KỸ THUẬT LỌC SỐ TRONG XỬ LÝ ẢNH................................

2 Khái niệm trong kỹ thuật lọc trơn nhiễu ảnh................................................

Lọc nhiễu ảnh là công đoạn tiền xử lý trong xử lý ảnh số, nhằm nâng cao

chất lượng hình ảnh cho mắt con người hoặc để phục vụ cho các công đoạn sau,

xử lý tốt công đoạn này sẽ giúp cho các công đoạn sau tiến hành được dễ dàng

hơn.

Có nhiều loại nhiễu khác nhau( nhiễu sạn, nhiễu cộng, nhiễu nhân,...) và

cũng có nhiều phương pháp lọc nhiễu khác nhau. Tuy nhiên, tùy từng loại nhiễu

mà ta nên sử dụng phương pháp lọc nhiễu nào cho phù hợp vì không phải một

phương pháp có thể lọc được hết tất cả các loại nhiễu.

Nhiễu là phần tử ảnh mà giá trị của nó trội hơn so với các phần tử xung

quanh. Xét theo tần số, các phần tử nhiễu có tần số cao so với các điểm xung

quanh. Tuy nhiên, khái niệm này chỉ mang tính chất tương đối.

2 Các phương pháp lọc ảnh..............................................................................

2.2 Lọc trung vị

Bộ lọc trung vị là bộ lọc làm mượt phi tuyến trong miền không gian.

Bộ lọc trung vị là một trong những bộ lọc theo thống kê thứ tự.

Nó thay thế giá trị của điểm ảnh bằng trung vị của các mức xám của các

điểm ảnh lân cận

Với các ảnh nhiễu dàn đều trên toàn ảnh có khả năng làm mờ nhiễu, giảm

sự khác biệt về mức sáng giữa các điểm ảnh của ảnh gốc và các điểm ảnh bị

nhiễu tác động. Phương pháp này lọc tốt đối với những ảnh bị nhiễu random như

nhiễu Gaussian hoặc nhiễu Uniform.

Quá trình làm mờ nhiễu cũng đồng thời làm mờ ảnh, vì bộ lọc trung bình

có xu hướng cân bằng cường độ ánh sáng các điểm ảnh. Cũng như bộ lọc

Median, với các ảnh có kích thước lớn thì số phép toán phải cần thực hiện lớn.

Bộ lọc trug bình có vai trò làm trơn ảnh có thể xem như bộ lọc thông cao, nhưng

lại làm mờ đường biên của các đối tượng bên trong ảnh, và nhọc liễu tiêu không

được tốt lắm.

2.2 Lọc hình học

Cả phương pháp lọc trung bình và lọc hình học đều là các phương pháp

lọc không gian, nó có vai trò làm trơn ảnh. Giống như phương pháp lọc trung

bình, phương pháp này lọc tốt hơn đối với những ảnh bị nhiễu Random nhiễu

Gaussian hoặc nhiễu Uniform.

Ảnh sau bị lọc cũng bị mờ đi và làm mất đi ít nhiều độ chi tiết của ảnh.

Với nhiễu dạng đường như hình dưới đây thì kết quả cũng không tốt nhiễu to ra

và đậm lên.

2.2 Lọc điều hòa

Bộ lọc trung bình điều hòa là một trong những bộ lọc trung bình được

chúng tôi sử dụng để xử lý dữ liệu ảnh trong miền không gian. Chúng ta có thể

sử dụng bộ lọc trung bình sóng hài để loại bỏ nhiễu muối. Tương tự như tiếng ồn

muối tiêu còn được gọi là tiếng ồn xung, không có khả năng xảy ra các xung có

cường độ thấp hơn. Tuy nhiên, nó không thành công đối với tiếng ồn hạt tiêu.

Bộ lọc này làm việc tốt cho các ảnh nhiễu trắng hoặc đen. Bộ lọc này làm

việc được với nhiễu Gauss và có thể duy trì thông tin chi tiết tốt hơn bộ loc trung

bình số học. Bộ lọc điều hòa làm việc tốt với nhiễu muối (salt noise), nhưng

không được tốt cho nhiễu tiêu (peper noise).

Dữ liệu demo phép nhân chập lọc ảnh trơn nhiễu

 Phần mềm: chương trình được viết bằng phần mềm pycharm

 Phần code:

 import numpy as np import scipy as sp import itertools as it import matplotlib as plt from scipy import signal from matplotlib import FuncAnimation

plt.style('dark_background') # comment out for "light" theme plt["font"] = 12

plt["figure"] = ( 12 , 7 )

def RGB_convolve(im1, kern): im2 = np_like(im1) for dim in range(im1[- 1 ]): # loop over rgb channels im2[:, :, dim] = sp.signal(im_data[:, :, dim], kern, mode="same", boundary="symm") return im

def RGB2RGBA(arr, fill_value= 1 ): """Add an alpha channel to an RGB array""" if arr[- 1 ] >= 4 : return arr arr2 = np(shape=(*arr[:- 1 ], 4 ), fill_value=fill_value, dtype=arr) arr2[:, :, :- 1 ] = arr/255. return arr

FNAME = "blurryA"

FNAME = "ducks"

T = 10 # seconds FPS = 30 FTOTAL = T*FPS # total number of frames

KERNELS = {"Edge Detection 3x3": np([[- 1 , - 1 , - 1 ], [- 1 , 8 , - 1 ], [- 1 , - 1 , - 1 ]]), "Sharpen 3x3": np([[ 0 , - 1 , 0 ], [- 1 , 5 , - 1 ], [ 0 , - 1 , 0 ]])}

kernel_name = "Sharpen 3x3"

kernel_name = "Edge Detection 3x3"

kernel = KERNELS[kernel_name]

im_data = RGB2RGBA(plt(FNAME).astype(np))

im_filtered = RGB_convolve(im_data, kernel) im_filtered[:, :, - 1 ] = 1

im_display = np(im_data)

im_filtered[:,:,:-1] -= np(np(im_filtered[:,:,:-1], axis =

2))

Normalise to whiteim_filtered[:,:,:-1] -= np(im_filtered[:,:,:-1])im_filtered[:,:,:-1] /= 1/3 * np(np(im_filtered[:,:,:-1],

axis = 2))

Normalise to individual RGBim_filtered[:,:,:-1] -= np(im_filtered[:,:,:-1])im_filtered[:,:,:-1] /= np(im_filtered[:,:,:-1])

fig, (axL, axR) = plt(ncols= 2 , constrained_layout=True) fig(kernel_name) imL = axL(im_data, interpolation="none") # remove interpolation=... imR = axR(im_data, interpolation="none") # remove interpolation=... axR_xlim(axL_xlim()), axR_ylim(axL_ylim()) axL('off'), axR('off')