2010-06-30 31 views
11

Khi áp dụng hiệu ứng Gaussian blur cho ảnh, thông thường sigma là một tham số (ví dụ như Matlab và ImageJ).Tối ưu sigma để lọc Gaussian của một hình ảnh?

Làm cách nào để biết sigma nên là gì? Có một cách toán học để tìm ra một sigma tối ưu? Trong trường hợp của tôi, tôi có một số đối tượng trong hình ảnh sáng hơn so với nền và tôi cần tìm chúng bằng tính toán. Tôi sẽ áp dụng một bộ lọc Gaussian để làm cho trung tâm của các đối tượng này thậm chí sáng hơn, hy vọng tạo điều kiện cho việc tìm kiếm chúng. Làm thế nào tôi có thể xác định sigma tối ưu cho việc này?

Trả lời

15

Không có công thức để xác định nó cho bạn; sigma tối ưu sẽ phụ thuộc vào các yếu tố hình ảnh - chủ yếu là độ phân giải của hình ảnh và kích thước của các đối tượng của bạn trong nó (tính bằng pixel).

Ngoài ra, lưu ý rằng bộ lọc Gaussian không thực sự có nghĩa là làm sáng mọi thứ; bạn có thể muốn xem xét các kỹ thuật tối đa hóa tương phản - có vẻ như một thứ đơn giản như việc kéo dài biểu đồ có thể hoạt động tốt cho bạn.

chỉnh sửa: Giải thích thêm - sigma về cơ bản kiểm soát cách chức năng hạt nhân của bạn "béo"; giá trị sigma cao hơn mờ trên bán kính rộng hơn. Vì bạn đang làm việc với hình ảnh, sigma lớn hơn cũng buộc bạn sử dụng ma trận hạt nhân lớn hơn để nắm bắt đủ năng lượng của hàm. Đối với trường hợp cụ thể của bạn, bạn muốn hạt nhân đủ lớn để bao phủ hầu hết đối tượng (để nó đủ mờ), nhưng không lớn đến mức nó bắt đầu chồng lên nhau nhiều đối tượng lân cận tại một thời điểm - vì vậy, đối tượng tách là cũng là một yếu tố cùng với kích thước.

Kể từ khi bạn đề cập đến MATLAB - bạn có thể có một cái nhìn tại hạt nhân gaussian khác nhau với các thông số khác nhau bằng cách sử dụng chức năng fspecial('gaussian', hsize, sigma), nơi hsize là kích thước của hạt nhân và sigma là, tốt, sigma. Hãy thử thay đổi các tham số để xem nó thay đổi như thế nào.

+0

@tzaman: bạn có thể mở rộng cách sigma tối ưu phụ thuộc vào độ phân giải của hình ảnh và kích thước của các đối tượng bằng pixel không? hoặc chỉ cho tôi theo hướng đọc nếu bạn có thể. đó là chính xác những gì tôi đang tìm kiếm. ngoài ra, tôi còn nhớ về việc làm sáng; tôi có nghĩa là để nói rằng tôi muốn trung tâm của các đối tượng của tôi là tương đối tươi sáng với mọi thứ khác. – sepiroth

+0

@hatorade: Tôi đã mở rộng câu trả lời của mình; hy vọng nó làm rõ mọi thứ. – tzaman

+0

@tzaman: trên một trang web (http://imaging.mrc-cbu.cam.ac.uk/imaging/PrinciplesSmoothing) Tôi đọc rằng đo chiều rộng toàn phần tại một nửa tối đa (FWHM) có một phương trình. Khái niệm này có giữ cho hạt nhân không? Như trong ImageJ hoặc Matlab, "FWHM" của hạt nhân có liên quan đến sigma theo cùng một cách không? Lý do tôi hỏi là bởi vì thông thường là các tham số là kích thước hạt nhân, và sigma, nhưng tôi tiếp tục đọc rằng sigma tác động kích thước hạt nhân ... – sepiroth

0

Bạn phải tìm min/max của hàm G sao cho G (X, sigma) trong đó X là tập hợp các quan sát của bạn (trong trường hợp của bạn, các giá trị thang độ xám của ảnh), Hàm này có thể là bất cứ thứ gì duy trì "trật tự" của cường độ của iamge, ví dụ, điều này có thể được thực hiện với đạo hàm 1 của hình ảnh (như G),

fil = fspecial('sobel'); 
im = imfilter(I,fil); 
imagesc(im); 
colormap = gray; 

này mang đến cho bạn kết quả của phái sinh đầu tiên của một hình ảnh, bây giờ bạn muốn tìm tối đa sigma bởi tối đa G (X, sigma), điều đó có nghĩa là bạn đang thử một vài sigma (giả sử, theo thứ tự tăng dần) cho đến khi bạn đạt tới một sigma làm cho G tối đa. Điều này cũng có thể được thực hiện với đạo hàm bậc hai.

Các vấn đề liên quan