问题描述
当对图像应用高斯模糊时,通常西格玛是一个参数(例子包括Matlab和ImageJ)。一个人怎么知道西格玛应该是什么?有一个数学方法来找出一个最佳的西格玛?在我的情况下,我有一些与背景相比明亮的图像对象,我需要通过计算来找到它们。我打算应用一个高斯滤波器使这些物体的中心更加明亮,希望有利于找到它们。我怎样才能确定最佳的西格玛呢?解决方案
一个人怎么知道西格玛应该是什么?有一个数学方法来找出一个最佳的西格玛?在我的情况下,我有一些与背景相比明亮的图像对象,我需要通过计算来找到它们。我打算应用一个高斯滤波器使这些物体的中心更加明亮,希望有利于找到它们。我怎样才能确定最佳的西格玛呢?解决方案
最佳的西格玛将取决于图像因素 - 主要是图像的分辨率和对象的大小(以像素为单位)。
另外,请注意高斯滤波器aren实际上并不意味着要照亮任何东西;您可能想要查看对比度最大化技术 - 听起来像直方图拉伸这样简单的事情可以为您工作。
编辑:更多解释 - sigma基本上控制着你的内核函数将如何胖更高的西格马值在更宽的半径上模糊。由于您正在处理图像,所以较大的西格玛也会迫使您使用更大的内核矩阵来捕捉足够的功能。对于您的具体情况,您希望内核足够大以覆盖大部分对象(使其足够模糊),但不会太大,以至于一次开始重叠多个相邻对象 - 实际上,对象间隔也是大小的一个因素。
自从您提到MATLAB以来,您可以使用 fspecial('gaussian',hsize,sigma)来查看不同参数的各种高斯内核。 函数,其中 hsize 是内核的大小, sigma 就是sigma 。尝试改变参数,看看它是如何改变的。
When applying a Gaussian blur to an image, typically the sigma is a parameter (examples include Matlab and ImageJ).
How does one know what sigma should be? Is there a mathematical way to figure out an optimal sigma? In my case, i have some objects in images that are bright compared to the background, and I need to find them computationally. I am going to apply a Gaussian filter to make the center of these objects even brighter, which hopefully facilitates finding them. How can I determine the optimal sigma for this?
There's no formula to determine it for you; the optimal sigma will depend on image factors - primarily the resolution of the image and the size of your objects in it (in pixels).
Also, note that Gaussian filters aren't actually meant to brighten anything; you might want to look into contrast maximization techniques - sounds like something as simple as histogram stretching could work well for you.
edit: More explanation - sigma basically controls how "fat" your kernel function is going to be; higher sigma values blur over a wider radius. Since you're working with images, bigger sigma also forces you to use a larger kernel matrix to capture enough of the function's energy. For your specific case, you want your kernel to be big enough to cover most of the object (so that it's blurred enough), but not so large that it starts overlapping multiple neighboring objects at a time - so actually, object separation is also a factor along with size.
Since you mentioned MATLAB - you can take a look at various gaussian kernels with different parameters using the fspecial('gaussian', hsize, sigma) function, where hsize is the size of the kernel and sigma is, well, sigma. Try varying the parameters to see how it changes.
这篇关于图像的高斯滤波的最佳西格玛?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!