Median Filter Là Gì - Xử Lý Ảnh Với Opencv: Lọc Số Trong Ảnh

Giới thiệu thanh lọc số ảnh, tư tưởng và công thức nhân chập ma trận, một vài kỹ thuật thanh lọc nhiễu và một số bộ lọc trong Open
CV.

Bạn đang xem: Median filter là gì


Trong bài biết này ra mắt 1 số cỗ lọc ảnh số vào Open
CV.

Lọc số hình ảnh là gì?

1 khối hệ thống dùng để làm biến dạng sự phân bố tần số của những thành phần tín hiệu theo các chỉ tiêu gọi đã mang lại được hotline là cỗ lọc số.Lọc số ảnh (Filter) có ý nghĩa quan trọng vào việc tạo ra các hiệu ứng trong ảnh, 1 số ít hiệu ứng dựa vào sử dụng các bộ lọc làm mờ (Blur), làm cho trơn (Smooth),...

Nguyên tắc chung của các cách thức lọc là mang lại ma trận hình ảnh nhân chập với 1 ma trận lọc (Kernel) hay nói một cách khác là các phép tính nhân chập trên ảnh. Ma trận lọc lọc (Kernel) còn có thể được gọi là cửa ngõ số chập, cửa sổ lọc, khía cạnh nạ,... Trong nội dung bài viết này thực hiện thuật ngữ ma trận thanh lọc (Kernel).

Công thức

Idst = M * Isrc
Isrc: ảnh gốc được áp dụng để thanh lọc số ảnh.Idst: ảnh ra sau thời điểm thực hiện chấm dứt phép thanh lọc số ảnh.M: ma trận lọc (Mask, kernel).Với từng phép lọc có rất nhiều ma trận thanh lọc (Kernel) khác nhau, không có 1 quy định cụ thể nào mang đến việc khẳng định M. Kích thước ma trận M là một trong những số lẻ. Ví dụ: 3x3, 5x5. 

Tổng Tpt những phẩn tử trong ma trận M thường xuyên là 1.

Tpt > 1: Ảnh sau thời điểm thực hiện ngừng phép thanh lọc số hình ảnh (Idst) bao gồm độ sáng to hơn so với hình ảnh ban đầu (Isrc). Tpt : Ảnh sau thời điểm thực hiện hoàn thành phép lọc số ảnh (Idst) có độ sáng bé dại hơn so với ảnh ban đầu (Isrc).

Ví dụ

*

Nhân chập hình ảnh với phép lọc số ảnh

Để thực hiện 1 phép lọc số ảnh, rất cần phải tiến ảnh nhân chập hình ảnh đầu vào với cùng 1 ma trận thanh lọc hay cửa sổ nhân chập (Kernel). Toàn bộ các điểm ảnh (Pixel) trên hình ảnh sẽ được thực hiện nhân chập với ma trận lọc, tâm của ma trận lọc sẽ được đặt trùng vào vị trí của điểm hình ảnh (Pixel) đang được tính nhân chập làm thay đổi các giá trị của px ban đầu.

Công thức tính nhân chập

*
n = (kích thước ma trận thanh lọc - 1)/2.Lấy trọng điểm của ma trận lọc (Kernel) làm cho điểm gốc.

Ví dụ

*

1 ma trận điểm ảnh I với ma trận lọc (Kernel) M:

n = (3 - 1) / 2 = 1.Idst(2,2) = Isrc(2, 2) * M(u, v) = Isrc(1, 1) * M(-1, -1) + Isrc(1, 2) * M(-1, 0) + Isrc(1, 3) * M(-1, 1) + Isrc(2, 1) * M(0, -1) + Isrc(2, 2) * M(0, 0) + Isrc(2, 3) * M(0, 1) + Isrc(3, 1) * M(1, -1) + Isrc(3, 2) * M(1, 0) + Isrc(3, 3) * M(1, 1) = 2*1 + 4*2 + 3*3 + 5*4 + 7*5 + 2*6 + 7*7 + 6*8 + 2*9 = 201.

1 số kỹ thuật thanh lọc nhiễu

Lọc trung bình - Median Filter

Ý tưởng
Với lọc trung bình, mỗi điểm hình ảnh (Pixel) được thay thế bằng mức độ vừa phải trọng số của các điểm trong vùng lân cận.

Giả sử rằng có một ma trận lọc (Kernel) (3x3) quét qua từng điểm ảnh của hình ảnh đầu vào Isrc. Tại địa chỉ mỗi điểm ảnh lấy giá bán trị của các điểm ảnh tương ứng trong vùng (3x3) của hình ảnh gốc đặt vào ma trận thanh lọc (Kernel). Quý hiếm điểm hình ảnh của hình ảnh đầu ra Idst là giá trị trung bình của tất cả các điểm trong ảnh trong ma trận lọc (Kernel).

Thuật toán

1 hình ảnh đầu vào với I(x,y) là cực hiếm điểm hình ảnh tại một điểm (x,y) cùng 1 ngưỡng θ.

Xem thêm: Giá Vàng Hôm Nay Có Nên Mua Vào, Có Nên Mua Vàng Hôm Nay Để Đầu Tư Sinh Lời

Bước 1: Tính tổng những thành phần nằm trong ma trận thanh lọc (Kernel).Bước 2: phân tách lấy trung bình của tổng những thành phần nằm trong ma trận được tính ở trên với con số các phần tử của cửa sổ lọc ra 1 quý giá Itb(x, y).Bước 3: Hiệu chỉnh:Nếu I(x,y) - Itb(x,y) > θ thì I(x,y) = Itb(x,y).Nếu I(x,y) - Itb(x,y) thì I(x,y) = I(x,y).Chú ý

θ là 1 trong giá trị mang lại trước và có thể có hoặc ko tùy trực thuộc vào mục đích.

Tác dụng

Trong thanh lọc trung bình, hay ưu tiên cho những hướng để bảo vệ biên của hình ảnh khỏi bị mờ khi làm trơn ảnh. Những kiểu ma trận thanh lọc (Kernel) được sử dụng tùy thuộc vào các trường vừa lòng khác nhau. Những bộ thanh lọc trên là bộ lọc tuyến đường tính theo tức là điểm ảnh ở trung tâm cửa sổ sẽ tiến hành thay vị tổ hợp những điểm bên cạnh chập cùng với ma trận lọc (Kernel). 

Ví dụ

Ma trận lọc (Kernel) M ở ngôn từ phần Ví dụ: lọc số hình ảnh là gì? như làm việc trên và phía bên dưới lần lượt là ma trận điểm ảnh đầu vào (Isrc) với ma trận điểm hình ảnh đầu ra (Idst).

*

Idst(3,3) = (7+2+1+6+2+8+6+7+7) / 9 = 46 / 9 = 5. Chú ýCác hệ số trong ma trận lọc (Kernel) này bao gồm tổng bởi 1, nên độ sáng ảnh giữ nguyên, và những hệ số đều dương vì thế nó có khuynh hướng làm nhoè ảnh.

Lọc trung vị - Mean Filter

Ý tưởng

Lọc trung vị là thanh lọc phi tuyến. 1 phép lọc phi tuyến đường là 1 kết quả không thể thu được từ một tổng trọng số của các điểm ảnh (Pixel) lạm cận. Sau thời điểm đã định nghĩa kích cỡ vùng lân cận, cực hiếm điểm ảnh (Pixel) trung chổ chính giữa được thay bởi trung vị có nghĩa là giá trị ở chính giữa của toàn bộ các giá chỉ trị của những điểm vào vùng lạm cận.

Cho 1 hàng số X1, X2, X3, ..., Xn được sắp xếp theo máy tự tăng mạnh hoặc bớt dần. Lúc ấy Xtv được xem bởi công thức:

Nếu n lẻ:

*

Nếu n chẵn:

*

Kích thước của ma trận thanh lọc (Kernel) hay sử dụng có size 3x3, 5x5, 7x7.

Thuật toán
Bước 1: xác minh điểm ảnh (Pixel) I(x, y).Bước 2: sắp xếp các điểm ảnh (Pixel) lân cận của theo 1 lắp thêm tự khăng khăng (Tăng dần dần hoặc bớt dần).Bước 3: xác định Itv (Chính là Xtv trong văn bản phía trên).Bước 4: Hiệu chỉnh:Nếu I(x,y) - Itb(x,y) > θ thì I(x,y) = Itb(x,y).Nếu I(x,y) - Itb(x,y) .Chú ý

θ là 1 trong những giá trị cho trước và rất có thể có hoặc không tùy thuộc vào mục đích.

Tác dụng
Loại bỏ những điểm ảnh mà vẫn đảm bảo độ phân giải.Hiệu quả trong việc giảm sút điểm nhiễu trong ma trận thanh lọc (Kernel) to hay bằng 1 nửa số điểm trong ma trận thanh lọc (Kernel).Ví dụ
*

Idst(1,1) = (2, 2, 2, 2, 2, 2, 4, 7, 5) = 2.Idst(3,3) = (1, 2, 2, 6, 6, 7, 7, 7, 8) = 6.Chú ýIdst(1,1), Idst(1,5), Idst(5,1), Idst(5,5): có thể làm như giải pháp trên hoặc không bắt buộc kiểm tra điểm biên.

Lọc thông tốt - Low Pass Filter

LPF - Low Pass Filter là một trong bộ lọc tuyến đường tính, hay được sử dụng để làm trơn nhiễu. Kỹ thuật lọc nhiễu ảnh này yêu cầu sử dụng 1 số ít ma trận thanh lọc (Kernel) như sau:

*

Hoặc

*

Lọc thông cao - High Pass Filter

HPF - High Pass Filter là 1 trong những bộ lọc phi đường tính. Hay sử dụng trong vấn đề làm trơn hình ảnh và tìm biên đối tượng người sử dụng có nghỉ ngơi trong ảnh. 1 số ít ma trận thanh lọc (Kernel) cần sử dụng trong thanh lọc thông cao:

*
Chú ý

Trong lọc thông cao, các ma trận thanh lọc (Kernel) tất cả tổng hệ số những giá trị của cục lọc bởi 1.

1 số cỗ lọc trong Open
CV

Blur

Là 1 phép lọc khiến cho trơn hình ảnh và khử nhiễu phân tử và là một trong bộ thanh lọc trung bình. Ma trận lọc (Kernel) của bộ lọc Blur có dạng:

*

Trong Open
CV để sử dụng Blur cho một hình ảnh, sử dụng hàm sau:

cv::blur(cv::Input
Array src, cv::Input
Array dst, cv::Size ksize, cv::Point anchor = cv::Point(-1,-1), int border
Type = 4)src: Là ảnh gốc.dst: Là ảnh sau khi triển khai phép lọc số ảnh.ksize: Là kích thước của ma trận lọc.anchor: Là Anchor Point của ma trận lọc. Quý hiếm mặc định là (-1,-1).border
Type: Là phương pháp để cầu lượng và căn chỉnh các điểm hình ảnh nếu phép lọc bọn chúng vượt thoát ra khỏi giới hạn của ảnh. Quý giá mặc định là 4.Ví dụcv::blur(image
Src, image
Dst, 3);

*

Sobel

Kỹ thuật áp dụng 2 ma trận thanh lọc (Kernel) xấp xỉ đạo hàm theo hướng x với y:

*

Là 1 phép lọc giúp tìm đường giáp ranh biên giới cho ảnh. Trong Open
CV để áp dụng Sobel cho một hình ảnh, áp dụng hàm sau:

cv::Sobel(cv::Input
Array src, cv::Output
Array dst, int ddepth, int dx, int dy, int ksize = 3, double scale = (1,0) , double delta = (0,0), int border
Type = 4);src: ảnh gốc.dst: ảnh sau khi tiến hành phép thanh lọc số ảnh.ksize: kích thước của ma trận lọc. Giá trị mặc định là 3.ddepth: độ sâu của hình ảnh sau phép lọc: VD: CV_32F, CV_64F,...dx: đạo hàm theo hướng x. Dx = 1 nếu như đạo hàm theo phía x.dy: đạo hàm theo phía y. Dy = 1 nếu đạo hàm theo phía y.scale với delta: 2 thông số tùy lựa chọn cho câu hỏi tính quý giá đạo hàm lưu quý giá ví không nên vào hình ảnh sau phép lọc. Mang định là một và 0.border
Type: phương thức để cầu lượng và chỉnh sửa các điểm hình ảnh nếu phép lọc chúng vượt ra khỏi giới hạn của ảnh. Cực hiếm mặc định là 4.Ví dụcv::Sobel(image
Src, image
Dst, image
Src.depth(), 1, 0, 3);

*
cv::Sobel(image
Src, image
Dst, image
Src.depth(), 0, 1, 3);
*
cv::Sobel(image
Src, image
Dst, image
Src.depth(), 1, 1, 3);
*

Laplace

Là 1 phép lọc giúp tìm mặt đường biên toàn bộ cho ảnh. Tứ tưởng là rước đạo hàm bậc hai của những điểm. Ma trận thanh lọc (Kernel) của bộ lọc Laplace tất cả dạng:

*

 

Trong thực tiễn dùng nhiều kiểu ma trận thanh lọc (Kernel) khác nhau để xấp xỉ rời rạc đạo hàm bậc nhì Laplace. 3 kiểu ma trận lọc (Kernel) thường xuyên dùng:

*

Trong Open
CV để thực hiện Laplace cho một hình ảnh, sử dụng hàm sau:

cv::Laplace(cv::Input
Array src, cv::Output
Array dst, int ddepth, int ksize = 1, double scale = (1,0), double delta = (0,0), int border
Type = 4);Chú ýCó 1 phươn pháp lọc dùng để làm tìm đường biên toàn thể khác là Gradient, cách thức này thao tác khá giỏi khi độ sáng đổi khác rõ nét, lúc mức xám biến đổi chậm hoặc miền sự chuyển tiếp giữa trải rộng thì cách thức này tỏ ra nhát hiệu quả. Vậy phải sử dụng cách thức laplace nhằm khắc phục điểm yếu này.Trong kỹ thuật thanh lọc laplace, điểm biên được xác định bởi điểm giảm điểm không. Và điểm không là duy nhất do vậy kỹ thuật này cho đường biên giới rất mảnh (Rộng 1 pixel). Cực kỳ nhạy cảm cùng với nhiễu vị đạo hàm bậc 2 bất ổn định.Ví dụcv::Laplacian(image
Src, image
Dst, CV_64F);

*

Cài đặt cỗ lọc trong Open
CV

Trong nội dung ở phía trên nội dung bài viết đã trình làng 1 số cỗ lọc có sẵn trong Open
CV. Vào Open
CV có một hàm tính chập, nhờ đó có thể tự cài những bộ lọc cho riêng để tương xứng với mục tiêu xử lý ảnh. Hàm tính chập trong Open
CV như sau:

cv::Filter2D(cv::Input
Array src, cv::Output
Array dst, int ddepth cv::Input
Array kernel, cv::Point anchor=cv::Point(-1, -1) double delta = (0,0), int border
Type = 4);src: hình ảnh ban đầu.dst: ảnh sau lúc nhân chậpkernel: phương diện nạ nhân chậpanchor: điểm neo để tại vị mặt nạ nhân chập.Điều quan trọng đặc biệt nhất với những tự thiết đặt các cỗ lọc đó đó là ma trận lọc (Kernel). Có thể dễ dàng tìm kiếm được các định ma trận thanh lọc (Kernel). Trong các nội dung ở trong phần trên, các bộ lọc được thiết lập sẵn trong Open
CV có reviews các ma trận lọc kèm theo cho từng phép lọc.

Ví dụ

Đoạn code ví dụ như cho vấn đề tự thiết đặt 1 1 thanh lọc để giải pháp xử lý hình ảnh.

#include "stadafx.h"#include #include #include int main() cv::Mat image
Src = imread("stdio.vn", CV_LOAD_IMAGE_COLOR); cv::Mat image
Dst; cv::Mat kernel = cv::Mat::ones(Size(3, 3), CV_32F) / (float)(9); cv::filter2D(image
Src, image
Dst, image
Src.depth(), kernel, Point(-1, -1), 0, BORDER_DEFAULT); imshow("Image Srd", image
Src); imshow("Image Dst", image
Dst); cv::wai
Key(0); return(0);Kết quả ví dụ ngơi nghỉ trên tương tự như khi thực hiện bộ thanh lọc Blur.

*

*

*

*

*

*
Editor's NotesHình vẽ biểu diễn hoạt động của một cỗ lọc không khí tuyến tính sử dụng mặt nạ kích thước 3*3. - chính vì nhiễu bỗng nhiên thông thường bao hàm quá trình chuyển đổi mạnh mức cường độ, ứng dụng cụ thể nhất của làm mịn là sút nhiễu. Tuy nhiên, các cạnh (mà đa số luôn luôn là những tính năng mong muốn của một hình ảnh) cũng được đặc trưng vày quá trình biến đổi cường độ sắc đẹp nét, cỗ lọc trung bình bao gồm tác dụng phụ không muốn rằng chúng làm sút cạnh. Một áp dụng khác của một số loại này của quá trình bao hàm việc có tác dụng mịn các đường nét sai bởi sử dụng một trong những lượng cảm thấy không được mức cường độ. Một áp dụng chính của các cỗ lọc vừa đủ là trong vấn đề giảm chi tiết "không thích hợp hợp" trong một hình ảnh. Ở cỗ lọc đồ vật nhất, cực hiếm mức xám áp ra output là quý giá trung bình chuẩn của những giá trị ở các điểm ảnh bị bao che bởi mặt nạ. Các hệ số của cục lọc là 1 thay bởi vì là 1/9 là để mang đến việc giám sát và đo lường được kết quả hơn. Sau khi quá trình lọc kết thúc, tất cả các quý giá điểm hình ảnh sẽ được chia cho 9. Bộ lọc không khí mà các hệ số trong phương diện nạ đều cân nhau được gọi là bộ lọc mức độ vừa phải (Mean Filter). - Ở bộ lọc trang bị hai, các giá trị điểm ảnh được nhân với các hệ số khác nhau, biểu đạt sự quan trọng đặc biệt (trọng lượng) so với các điểm khác. Điểm hình ảnh ở giữa mặt nạ được nhân với cái giá trị béo hơn, biểu thị sự đặc biệt quan trọng lớn hơn trong thống kê giám sát giá trị trung bình. Các hệ số khác được xem như là khoảng cách từ đặc điểm đó tới trung vai trung phong mặt nạ, các bóng giềng trực giao xa hơn nên có trọng số nhỏ tuổi hơn so với các láng giềng trực tiếp. Chiến lược đặt hệ số như thế cho phương diện nạ nhằm nỗ lực giảm mờ trong quá trình làm mịn ảnh. Thuật toán: sơ lược một biện pháp ngắn gọn công việc của giải thuật: 1. Quét cửa sổ lọc thứu tự lên các thành phần của hình ảnh đầu vào; điền các giá trị được quét vào hành lang cửa số lọc. 2. Xử lý bằng phương pháp thao tác trên những thành phần của cửa sổ lọc. 3. Tính quý giá trung bình các thành phần trong cửa sổ lọc. 4. Gán cực hiếm trung bình này mang đến giá trị điểm ảnh ở đầu ra. Qua loa một bí quyết ngắn gọn công việc của lời giải 4 cách chính: 1. Quét cửa sổ lọc lên các thành phần của ảnh gốc; điền những giá trị được quét vào hành lang cửa số lọc. 2. Lấy những thành phần nằm trong của sổ lọc để xử lý. 3. Bố trí theo lắp thêm tự những thành phần trong cửa sổ lọc. 4. Cất giữ thành phần trung vị, gán mang đến giá trị điểm ảnh đầu ra Khác: ko giống như linear filter, non linear filter sử dụng những pixel cạnh bên theo 1 quy giải pháp phi tuyến đường tính
Ta ví dụ: median filter là trường hợp rõ ràng của rank filter (bộ thanh lọc xếp hạng)Giống: cỗ lọc đường tính và cỗ lọc phi con đường tính được thực hiện bằng cách sử dụng vùng lấn cận.Nếu ảnh đầu vào bị nhiễu gauss thì cỗ lọc trung bình mang đến ra hiệu quả tốt hơn. Còn nếu hình ảnh đầu vào bị nhiễu salt và pepper thì cỗ lọc trung vị cho ra kết quả tốt hơn. Ta bao gồm thể đổi mới bộ lọc này bằng cách tạo một ngưỡng cùng chỉ thay thế sửa chữa các giá trị điểm hình ảnh hiện tại với giá trị vừa đủ của vùng ở bên cạnh nếu độ béo của quý giá trung bình ở nằm bên dưới ngưỡng này ví dụ như nhiễu “salt & pepper”, khi đó những thành phần nhiễu này do tất cả mức xám khác hoàn toàn với các điểm bên cạnh sẽ được thay thế sửa chữa bằng nấc xám ngay sát bằng những điểm xung quanh. Ta thấy, nhiễu “salt & pepper” bớt không đáng kể, bọn họ vẫn dễ dàng nhìn thấy bằng mắt thường, Mỗi giá trị px đầu ra là quý giá trung bình của tất cả các giá trị của những pixel lân cận của nó, cực hiếm nhiễu nằm trong khoảng <0;255> được nhằm tính quý giá trung bình
Tất cả các px của hình ảnh này có mức giá trị là 8, trừ 1 pixel nhiễu có giá trị 255Đầu ra của px được phủ bọc và tất cả các px có vùng kề bên chứa quý giá 255 bằng Ta thấy, nhiễu “salt and pepper” giảm đáng kể, bọn họ vẫn dễ dãi nhìn thấy bởi mắt thường, Median filter thực hiện các bước loại bỏ nhiễu tốt hơn, các cạnh ít lại mờ hơn,Bộ lọc chuẩn bị xếp những giá trị cạnh bên của 1 pixel, giá bán trị áp ra output đó là giá trị trung bình của tất cả các quý giá này được sắp xếp
About
Support
Terms
Privacy
Cookie Preferences
Do not sell or chia sẻ my personal information
Everand

Leave a Reply

Your email address will not be published. Required fields are marked *