View Full Version : Các bác cho em hỏi tí về filter effect ảnh ạ?
thanhquan911
06-06-2010, 12:50 AM
Cái này liên quan đến ảnh và xử lí ảnh ạ và cần có tin học nữa. Mong các bác giúp đỡ cho em với.
Trong photoshop các bác thấy là nó có cái filter gọi là Blur Gaussian.
Trong tin học nó được biểu diễn dưới dạng một ma trận 3x3 hoặc 5x5, em lấy ví dụ là 3x3:
1 2 1
2 4 2
1 2 1
em tạm gọi là MG(Matrix gaussian).
Một bức ảnh thì đc biểu diễn dưới dạng một ma trận mà mỗi ô trong ma trận đó(thể hiện 1 pixel của ảnh) chứa 3 giá trị màu R,G,B. kích thước ma trận này là hxw h: chiều cao ảnh và w là bề ngang của ảnh.
Xin hỏi các bác là làm sao để áp dụng cái filter này vào toàn ảnh ạ?
Em cám ơn mọi người
phan_vinh_nguyen
06-06-2010, 08:56 AM
Đầu tiên bác phải chuẩn hóa ma trận đó bằng cách chia nó cho tổng các phần tử, sau đó tại mỗi điểm, bác tính ra giá trị mới của điểm bằng cách lấy giá trị của điểm đó nhân cho giá trị phần tử giữa của ma trận, nhân điểm bên trái với phần tử bên trái, nhân điểm bên phải với phần tử bên phải v.v... cứ thế đối với tất cả các phần tử của ma trận. Trong toán học gọi là phép lấy tích chập (convolution).
Cách trên áp dụng cho cả ba kênh màu.
thanhquan911
06-06-2010, 02:17 PM
Em đọc trên mạng thấy nó cũng có ghi như thế nhưng em không hiểu là ở chỗ như thế này:
Ví dụ ta có filter thế này:
1 2 1
2 4 2
1 2 1
và ảnh thì thế này
P1 P2 P3 P4 P5 P6 P7 P8
P9 P10 P11 P12 P13 P14 P15 P16
P17 P18 P19 P20 P21 P22 P23 P24
P25 P26 P27 P28 P29 P30 P31 ......
.........................
Thì khi áp dụng có phải ta bắt đầu đi từ P10 không ạ? Vì P1 thì xung quanh của nó không có pixel bên trái cũng như phía trên? Tiếp nưa là sau P10 thì đến P11 hay đến P12 hay đến P13? Vì nếu tiếp là P11 thì do P10 đã mất value origin thì tính khi tính convolution product đâu có đúng.
Cám ơn bác đã giúp đỡ
phan_vinh_nguyen
06-06-2010, 06:42 PM
Câu hỏi đầu tiên thì thú thực em cũng mù, có nhiều thuật toán cũng bị ảnh hưởng kiểu này, tức là có vấn đề do không biết các giá trị ở vùng ngoài biên. Nếu là em, đối với các điểm ở gần biên, em sẽ chỉnh lại ma trận, loại bỏ ảnh hưởng của các điểm biên mà chỉ dùng các điểm bên trong thôi. Ví dụ với điểm P1 thì dùng ma trận
0 0 0
0 4 2
0 2 1
Chuẩn hóa thành
0 0 0
0 4/9 2/9
0 2/9 1/9
Cũng không rõ làm vậy có được không, chắc nhờ các cao thủ khác chỉ giáo.
Đối với câu hỏi thứ hai, bác phải lưu lại ảnh gốc, kết quả convolution tính ra một chỗ khác, sau khi xong rồi thì xóa ảnh gốc đi cũng được, chứ không nên ghi đè lên dữ liệu gốc.
thanhquan911
06-06-2010, 09:39 PM
Em cũng ngộ ra vài điều, cám ơn bác nhiều. Bỏ hàng 1 cột 1 với filter 3x3 và bỏ 2 hàng 2 cột đầu với filter 5x5. Cám ơn bác đã giúp đỡ nhé, đọc trên mạng chúng nó toàn viết chung chung như những gì em đã viết, có người giải thích rõ hơn thiệt là sướng.
Powered by vBulletin® Version 4.2.2 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.