Python-多目标图像分割和中心计算

1、用高斯模糊滤波函数处理原图像,获得图像模糊部分。

      高斯滤波是一种线性平滑滤波,对于除去高斯噪声有很好的效果。具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。
      在图像处理中高斯滤波一般有两种实现方式:一种是用离散化窗口滑窗卷积,另一种是通过傅里叶变换。最常见的就是第一种滑窗实现,只有当离散化的窗口非常大,用滑窗计算量非常大的情况下会考虑基于傅里叶变换的方法。
      滤波器分为高通、低通、带通等类型;低通滤波器是像素能量低的通过,而对于像素能量高的部分将会采取加权平均的方法重新计算像素的值,将能量像素的值变成能量较低的值。

       对于图像而言其高频部分展现图像细节,经过低通滤波器之后整幅图像变成低频造成图像模糊,这就被称为高斯模糊;相反高通滤波是允许高频通过而过滤掉低频,这样将低频像素进行锐化操作,图像变的更加清晰,被称为高斯滤波。

      总之:高斯滤波是指用高斯函数作为滤波函数的滤波操作而高斯模糊是用高斯低通滤波器。高斯滤波在图像处理中常用来对图像进行预处理操作,噪声会造成很大的误差而误差在不同的处理操作中会累积传递,为了能够得到较好的图像,对图像进行预处理消除噪声也是针对数字图像处理的无奈之举。
       高斯滤波器是一类根据高斯函数的形状来选择权值的线性平滑滤波器,高斯滤波器对于服从正太分布的噪声非常有效.

1.1 一维高斯函数如下:

                                     (1)

 

1.2 二维高斯函数如下:

                         (2)

这里系数A表示幅度, xo,yo 是中心点坐标, 上图中 A = 1, xo = 0, yo = 0, σx = σy = 1.

高斯函数下卷积如下

 {\displaystyle V=\int _{-\infty }^{\infty }\int _{-\infty }^{\infty }f(x,y)\,dx\,dy=2\pi A\sigma _{x}\sigma _{y}.}

一般地,二维椭圆高斯函数表示如下:

  f(x,y) = A \exp\left(- \left(a(x - x_o)^2 + 2b(x-x_o)(y-y_o) + c(y-y_o)^2 \right)\right)

 

 这里矩阵 \left[{\begin{matrix}a&b\\b&c\end{matrix}}\right]是正定矩阵

用这个公式,上图可以使用 A = 1, (xo, yo) = (0, 0), a = c = 1/2, b = 0. 构建

一般方程参数的意义

对于方程的一般形式,系数A是峰的高度,(xo,yo)是斑点的中心。

如果设

  a={\frac {\cos ^{2}\theta }{2\sigma _{x}^{2}}}+{\frac {\sin ^{2}\theta }{2\sigma _{y}^{2}}}

 

  b=-{\frac {\sin 2\theta }{4\sigma _{x}^{2}}}+{\frac {\sin 2\theta }{4\sigma _{y}^{2}}}

 

  c={\frac {\sin ^{2}\theta }{2\sigma _{x}^{2}}}+{\frac {\cos ^{2}\theta }{2\sigma _{y}^{2}}}

然后,我们以顺时针角度θ(对于逆时针旋转,反转b系数中的符号)旋转块体(blob)。这可以在下面的例子中看到:

  \theta =0

 \theta =\pi /6

  \theta =\pi /3

使用下面的Octave代码,可以很容易地看到更改参数的效果

A = 1;
x0 = 0; y0 = 0;

sigma_x = 1;
sigma_y = 2;

[X, Y] = meshgrid(-5:.1:5, -5:.1:5);

for theta = 0:pi/100:pi
    a = cos(theta)^2/(2*sigma_x^2) + sin(theta)^2/(2*sigma_y^2);
    b = -sin(2*theta)/(4*sigma_x^2) + sin(2*theta)/(4*sigma_y^2);
    c = sin(theta)^2/(2*sigma_x^2) + cos(theta)^2/(2*sigma_y^2);

    Z = A*exp( - (a*(X-x0).^2 + 2*b*(X-x0).*(Y-y0) + c*(Y-y0).^2));

surf(X,Y,Z);shading interp;view(-36,36)
waitforbuttonpress
end

1.3 离散高斯函数

有时候可能要求对高斯进行离散模拟;这在离散应用中是必要的,尤其是数字信号处理。一个简单的答案是采样连续高斯函数,产生采样高斯核。然而,这种离散函数不具有连续函数性质的离散模拟,并且可能导致不期望的效果,如文章尺度空间实现中所描述的。另一种方法是使用离散高斯核。

离散高斯核(实心),与采样高斯核(虚线)相比,尺度t=0.5,1,2,4。

这里I_{n}(t)表示整数阶的修正贝塞尔函数。 如下图所示

贝塞尔函数是圆筒振动模态的径向部分.

2、图像分割和子图中心计算实验结果

2.1 计算图像轮廓,并分割图像

具体原理为先计算模糊图像计算阈值,图像二值化,然后计算出图像的轮廓

实验中使用的原图如下图

对多目标图像分割结果

对多个目标的图像分割后的子图如下图:

2.2 多目标子图的中心计算结果

多个轮廓子图的中心计算结果如下

未完待续

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值