图片背景处理与噪点去除

本文详述了数字图像处理中如何处理图像背景及去除噪点,涉及高斯模糊、灰度二值化、Canny边缘检测和连通域检测等技术。通过OpenCV库实现,探讨了各种参数对结果的影响,并展示了实践过程和最终效果。
摘要由CSDN通过智能技术生成

概述

本文主要讲述的是数字图像处理中对图像背景的处理以及图片噪点的去除,运用到的方法有高斯模糊灰度二值化连通域检检测

1.算法原理

  • 高斯模糊

引用Wikipedia的两句话:

Mathematically, applying a Gaussian blur to an image is the same as convolving the image with a Gaussian function.
数学上讲,对图像做高斯模糊等同于将图像与高斯函数卷积。
Since the Fourier transform of a Gaussian is another Gaussian, applying a Gaussian blur has the effect of reducing the image’s high-frequency components; a Gaussian blur is thus a low pass filter.
由于高斯分布的傅里叶变换仍然是高斯分布,使用高斯模糊就减少了图像的高频分量,因此高斯模糊是低通滤波器。

关于高斯模糊的原理可以参考:高斯模糊原理
使用openCV只需要一行代码即可以实现高斯模糊:

blur = cv2.GaussianBlur(img,(5,5),0)

这里(5, 5)表示高斯矩阵的长与宽都是5,标准差取0时OpenCV会根据高斯矩阵的尺寸自己计算。概括地讲,高斯矩阵的尺寸越大,标准差越大,处理过的图像模糊程度越大。

  • 灰度二值化

先解释一下灰度

灰度是指只含亮度信息,不含色彩信息的图像。黑白照片就是灰度图,特点是亮度由暗到明,变化是连续的

用个例子来说明吧:一个256级灰度的图象,如果RGB三个量相同时,如:RGB(100,100,100)就代表灰度为100,RGB(50,50,50)代表灰度为50。
原理参考:图像灰度化
在OpenCV中的用法:

gray = cv2.cvtColor(pic,cv2.COLOR_BGR2GRAY)

再解释一下二值化

图像的二值化是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。

原理说起来很简单,就是灰度大于 阈值(Threshold) 的时候将灰度值设为255,小于则设为0,当然还有很多其他的二值化方法,参考博客:几种不同的Threshold类型
在OpenCV中的用法:

ret,im_treshold = cv2.threshold(gray,Threshold,maxval,cv2.THRESH_BINARY)

threshold参数表示阈值。
maxval参数表示与THRESH_BINARY和HRESH_BINARY_INV阈值类型一起使用设置的最大值。

  • canny

1.Canny边缘检测算子是John F. Canny于 1986 年开发出来的一个多级边缘检测算法。
2.Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:
好的检测- 算法能够尽可能多地标识出图像中的实际边缘。
好的定位- 标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近。
最小响应- 图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。
3.算法步骤:
  ①高斯模糊 - GaussianBlur
  ②灰度转换 - cvtColor
  ③计算梯度 – Sobel/Scharr
  ④非最大信号抑制
  ⑤高低阈值输出二值图像

重要的是需要理解,高斯卷积核大小的选择将影响Canny检测器的性能。尺寸越大,检测器对噪声的敏感度越低,但是边缘检测的定位误差也将略有增加。一般5x5是一个比较不错的trade off。
推荐博客(写的很好):边缘检测Canny原理
在OpenCV中的用法:

canny1 = cv2.Canny(image, threshold1, threshold2[,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值