Tôi đang áp dụng bộ lọc Gaussian cho video bằng bộ lọc gblur của ffmpeg . Bộ lọc chấp nhận tùy chọn sigma, nhưng không cho phép chọn kích thước kernel. Để báo cáo chính xác về việc sử dụng độ mờ Gaussian của tôi, tôi muốn biết kích thước kernel nào được sử dụng trong ffmpeg. (FYI, tôi đã sử dụng sigma = 0,5 và sigma = 0,8.)
Bây giờ, câu hỏi StackExchange này về mặt lý thuyết thảo luận về mối quan hệ giữa sigma, bán kính và kích thước hạt nhân. Nếu tôi diễn giải các câu trả lời chính xác, thì radius = 2 * sigma. Và bán kính là lượng pixel theo mỗi hướng mà bộ lọc Gaussian sử dụng. Do đó, kernel_size = ceil (bán kính * 2 + 1). Ví dụ: nếu sigma = 0,5, thì đó là hạt nhân 3x3, trong khi nếu sigma = 0,8 thì đó là hạt nhân 5x5.
Mặt khác, Wikipedia cho biết: "Thông thường, một chương trình xử lý ảnh chỉ cần tính toán một ma trận có kích thước ceil (6 * sigma) x ceil (6 * sigma) để đảm bảo kết quả đủ gần với kết quả thu được từ toàn bộ phân phối Gaussian. " Do đó, một lần nữa, nếu sigma = 0,5, thì đó là hạt nhân 3x3, trong khi nếu sigma = 0,8 thì đó là hạt nhân 5x5.
Tuy nhiên, tôi đã tìm thấy một bài báo khoa học có tiêu đề " Hình mờ video có độ phức tạp thấp trong miền nén H.264 " mâu thuẫn với các tuyên bố trước đó. Các tác giả tuyên bố đã sử dụng Bộ lọc Gaussian 5x5 với sigma = 0,3 và sigma = 0,4 (trong Bảng III và Bảng IV). Nhưng đối với những sigma đó, tôi sẽ mong đợi kích thước kernel là 3x3?
Nói tóm lại, tôi bối rối về cách khấu trừ kích thước kernel được sử dụng trong ffmpeg, trong khi tôi chỉ có thể thay đổi sigma. Tôi cũng không nhận được bất kỳ khôn ngoan hơn bằng cách đọc mã nguồn gfur ffmpeg . Có ai đó có thể cho tôi sự rõ ràng xung quanh chủ đề này? Cảm ơn trước!