【OpenCV-Python】:基于均值、中值、方框、双边和高斯滤波的图像去噪

这篇具有很好参考价值的文章主要介绍了【OpenCV-Python】:基于均值、中值、方框、双边和高斯滤波的图像去噪。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

✨博客主页:王乐予🎈
✨年轻人要:Living for the moment(活在当下)!💪
🏆推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法】

本节将对经过噪声污染的图像进行去噪,去噪方法包含均值滤波、中值滤波、方框滤波、双边滤波和高斯滤波

😺一、引言

🐶1.1 图像用例

实验所用的图像为【OpenCV-Python】:对图像添加高斯噪声与椒盐噪声中得到的均值为0,方差为0.01的高斯噪声污染图像和噪声密度为0.05的椒盐噪声污染图像,如图所示:
【OpenCV-Python】:基于均值、中值、方框、双边和高斯滤波的图像去噪

🐶1.2 评价指标

为了评判去噪质量的好坏,我们将选取PSNR、SSIM和MSE作为评价指标!

评价指标见:【OpenCV-Python】:图像PSNR、SSIM、MSE计算

🐶1.3 定义图像质量评价函数

def compare(ori, gaussian_denosing, sp_denosing):

    # ori为原图(未被噪声污染的图),gaussian_denosing为经过高斯噪声污染的图通过去噪算法去噪后的图;sp_denosing为经过椒盐噪声污染的图通过去噪算法去噪后的图
    gaussian_psnr = compare_psnr(ori, gaussian_denosing)
    sp_psnr = compare_psnr(ori, sp_denosing)

    gaussian_ssim = compare_ssim(ori, gaussian_denosing, multichannel=True)
    sp_ssim = compare_ssim(ori, sp_denosing, multichannel=True)

    gaussian_mse = compare_mse(ori, gaussian_denosing)
    sp_mse = compare_mse(ori, sp_denosing)

    return gaussian_psnr, sp_psnr, gaussian_ssim, sp_ssim, gaussian_mse, sp_mse

😺二、均值滤波

🐶2.1 滤波原理

均值滤波也称线性滤波,它是指使用一个模板在原图上进行均值计算并替换原图的值。

均值滤波器的模板有标准像素平均和加权平均之分,一个 3 × 3 3×3 3×3大小的模板如下图所示:
【OpenCV-Python】:基于均值、中值、方框、双边和高斯滤波的图像去噪

🐶2.2 实验过程

使用函数:cv2.blur()

🦄2.2.1 程序设计

"""
均值滤波
"""
gaussian_blur = cv2.blur(gaussian_img, (3, 3))
sp_blur = cv2.blur(sp_img, (3, 3))
h1 = np.hstack([gaussian_img, gaussian_blur])
h2 = np.hstack([sp_img, sp_blur])
v = np.vstack([h1, h2])
cv2.imshow('out', v)
cv2.waitKey()

🦄2.2.2 实验结果

【OpenCV-Python】:基于均值、中值、方框、双边和高斯滤波的图像去噪

  • 第一幅图为被高斯噪声污染的图像;
  • 第二幅图为使用均值滤波对第一幅图去噪后的图像;
  • 第三幅图为被椒盐噪声污染的图像;
  • 第四幅图为使用均值滤波对第三幅图去噪后的图像。

🦄2.2.3 指标参数

gaussian_psnr, sp_psnr, gaussian_ssim, sp_ssim, gaussian_mse, sp_mse = compare(original, gaussian_blur, sp_blur)
print('均值滤波对高斯噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(gaussian_psnr, gaussian_ssim, gaussian_mse))
print('均值滤波对椒盐噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(sp_psnr, sp_ssim, sp_mse))

结果为:

均值滤波对高斯噪声污染图像去噪后的指标为:PSNR:27.51495578617511,SSIM:0.7044879580272968,MSE:115.23509979248047
均值滤波对椒盐噪声污染图像去噪后的指标为:PSNR:25.66665449076371,SSIM:0.5821969899711158,MSE:176.36601893107095

从指标结果可以看出,均值滤波对高斯噪声的去除能力更强!

😺三、中值滤波

🐶3.1 滤波原理

中值滤波是把图像中的一点用该点的一个邻域中的各值的中值代替。

🐶3.2 实验过程

使用函数:cv2.medianBlur()

🦄3.2.1 程序设计

gaussian_blur = cv2.medianBlur(gaussian_img, (3, 3))
sp_blur = cv2.medianBlur(sp_img, (3, 3))
h1 = np.hstack([gaussian_img, gaussian_blur])
h2 = np.hstack([sp_img, sp_blur])
v = np.vstack([h1, h2])
cv2.imwrite(r"C:\Users\Lenovo\Desktop\DIP\median_filter.jpg", v)
cv2.imshow('out', v)
cv2.waitKey()

🦄3.2.2 实验结果

【OpenCV-Python】:基于均值、中值、方框、双边和高斯滤波的图像去噪

  • 第一幅图为被高斯噪声污染的图像;
  • 第二幅图为使用中值滤波对第一幅图去噪后的图像;
  • 第三幅图为被椒盐噪声污染的图像;
  • 第四幅图为使用中值滤波对第三幅图去噪后的图像。

🦄3.2.3 指标参数

gaussian_psnr, sp_psnr, gaussian_ssim, sp_ssim, gaussian_mse, sp_mse = compare(original, gaussian_blur, sp_blur)
print('中值滤波对高斯噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(gaussian_psnr, gaussian_ssim, gaussian_mse))
print('中值滤波对椒盐噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(sp_psnr, sp_ssim, sp_mse))

结果为:

中值滤波对高斯噪声污染图像去噪后的指标为:PSNR:26.882078435438537,SSIM:0.6406334892144118,MSE:133.31300481160483
中值滤波对椒盐噪声污染图像去噪后的指标为:PSNR:28.5392567826037,SSIM:0.7218574470291008,MSE:91.0237414042155

从指标结果可以看出,中值滤波对椒盐噪声的去除能力更强!

😺四、方框滤波

🐶4.1 滤波原理

方框滤波又称盒子滤波,方框滤波中可以自由选择是否对均值滤波的结果进行归一化,即可以自由选择滤波结果是邻域像素值之和的平均值(均值滤波),还是邻域像素值之和。也就是说均值滤波是方框滤波的特殊情况

方框滤波卷积核可以表示为:

K = 1 α [ 1 1 1 ⋯ 1 1 1 1 1 ⋯ 1 1 ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ 1 1 1 ⋯ 1 1 1 1 1 ⋯ 1 1 1 1 1 ⋯ 1 1 ] K=\frac{1}{\alpha }\begin{bmatrix} 1& 1& 1& \cdots & 1& 1\\ 1& 1& 1& \cdots & 1& 1\\ \cdots & \cdots & \cdots & \cdots & \cdots & \cdots \\ 1& 1& 1& \cdots & 1& 1\\ 1& 1& 1& \cdots & 1& 1\\ 1& 1& 1& \cdots & 1& 1 \end{bmatrix} K=α1 1111111111111111111111111
上式的对应关系为:
α = { 1 w i d t h × h e i g h t n o r m a l i z e = 1 1 n o r m a l i z e = 0 \alpha =\left\{\begin{matrix} \frac{1}{width\times height}& normalize=1\\ 1& normalize=0 \end{matrix}\right. α={width×height11normalize=1normalize=0

🐶4.2 实验过程

使用函数:cv2.boxFilter(src, ddepth, ksize, anchor, normalize, borderType)

参数说明:

  • src:输入图像;
  • ddepth:图像深度,-1表示用原图深度;
  • ksize:内核大小;
  • anchor:锚点,默认为(-1,-1),表示当前计算均值的点位于核的中心点位置;
  • normalize:表示是否进行归一化处理,值为1,进行归一化处理;值为0,不进行归一化处理;
  • borderType:表示以何种方式处理边界,默认即可。

🦄4.2.1 程序设计

"""
方框滤波
"""
gaussian_blur = cv2.boxFilter(gaussian_img, -1, (3, 3), normalize=0)
sp_blur = cv2.boxFilter(sp_img, -1, (3, 3), normalize=0)
h1 = np.hstack([gaussian_img, gaussian_blur])
h2 = np.hstack([sp_img, sp_blur])
v = np.vstack([h1, h2])
cv2.imwrite(r"C:\Users\Lenovo\Desktop\DIP\box_filter.jpg", v)
cv2.imshow('out', v)
cv2.waitKey()

🦄4.2.2 实验结果

【OpenCV-Python】:基于均值、中值、方框、双边和高斯滤波的图像去噪

  • 第一幅图为被高斯噪声污染的图像;
  • 第二幅图为使用方框滤波对第一幅图去噪后的图像;
  • 第三幅图为被椒盐噪声污染的图像;
  • 第四幅图为使用方框滤波对第三幅图去噪后的图像。

由图可知,不经过归一化的方框滤波很容易出现大面积的白色。

🦄4.2.3 指标参数

gaussian_psnr, sp_psnr, gaussian_ssim, sp_ssim, gaussian_mse, sp_mse = compare(original, gaussian_blur, sp_blur)
print('方框滤波对高斯噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(gaussian_psnr, gaussian_ssim, gaussian_mse))
print('方框滤波对椒盐噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(sp_psnr, sp_ssim, sp_mse))

结果为:

方框滤波对高斯噪声污染图像去噪后的指标为:PSNR:5.251255346836561,SSIM:0.415694536225471,MSE:19406.84003829956
方框滤波对椒盐噪声污染图像去噪后的指标为:PSNR:5.328992238651672,SSIM:0.41684132817868463,MSE:19062.556196848553

😺五、双边滤波

🐶5.1 滤波原理

双边滤波是一种非线性的滤波方法,其同时考虑空间几何距离与灰度相似性。

🐶5.2 实验过程

使用函数:cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]])

参数说明:

  • src:输入图像;
  • d:滤波期间使用的每个像素邻域的直径,如果其值为非正数,则从sigmaSpace计算;
  • sigmaColor:在颜色空间中过滤sigma,较大的参数意味着像素邻域内较远的颜色将相互影响;
  • sigmaSpace:在几何空间中过滤sigma,较大的参数意味着更远的像素将相互影响;

🦄5.2.1 程序设计

"""
双边滤波
"""
gaussian_blur = cv2.bilateralFilter(gaussian_img, 25, 100, 100)
sp_blur = cv2.bilateralFilter(sp_img, 25, 100, 100)
h1 = np.hstack([gaussian_img, gaussian_blur])
h2 = np.hstack([sp_img, sp_blur])
v = np.vstack([h1, h2])
cv2.imwrite(r"C:\Users\Lenovo\Desktop\DIP\bilateral_filter.jpg", v)
cv2.imshow('out', v)
cv2.waitKey()

🦄5.2.2 实验结果

【OpenCV-Python】:基于均值、中值、方框、双边和高斯滤波的图像去噪

  • 第一幅图为被高斯噪声污染的图像;
  • 第二幅图为使用双边滤波对第一幅图去噪后的图像;
  • 第三幅图为被椒盐噪声污染的图像;
  • 第四幅图为使用双边滤波对第三幅图去噪后的图像。

🦄5.2.3 指标参数

gaussian_psnr, sp_psnr, gaussian_ssim, sp_ssim, gaussian_mse, sp_mse = compare(original, gaussian_blur, sp_blur)
print('双边滤波对高斯噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(gaussian_psnr, gaussian_ssim, gaussian_mse))
print('双边滤波对椒盐噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(sp_psnr, sp_ssim, sp_mse))

结果为:

双边滤波对高斯噪声污染图像去噪后的指标为:PSNR:25.992916512934414,SSIM:0.6635250024737996,MSE:163.60203806559244
双边滤波对椒盐噪声污染图像去噪后的指标为:PSNR:21.06964250996061,SSIM:0.3879879230675302,MSE:508.2953186035156

从指标结果可以看出,双边滤波对高斯噪声的去除能力更强!

😺六、高斯滤波

🐶6.1 滤波原理

在实际滤波中,将当前像素作为核中心,利用卷积核对周围邻域像素作加权平均,其值作为当前像素的新值。

高斯滤波步骤:

  • 移动相关核的中心元素,使它位于输入图像待处理像素的正上方;
  • 将输入图像的像素值作为权重,乘以相关核;
  • 将上面各步得到的结果相加做为输出。

简单来说就是根据高斯分布得到高斯模板然后做卷积相加的一个过程。

https://www.cnblogs.com/kensporger/p/11628050.html
https://www.jianshu.com/p/73e6ccbd8f3f

🐶6.2 实验过程

使用函数:cv2.GaussianBlur(src, ksize, sigmaX [ , dst [ , sigmaY [ , borderType ] ] ] )
参数说明:

  • src:输入图像;
  • ksize:高斯核大小,必须是正数和奇数;
  • sigmaX:X方向的高斯核标准差;
  • sigmaY:Y方向的高斯核标准差;如果该值为0,则默认为与sigma相等。
  • borderType:边界处理方式。

🦄6.2.1 程序设计

"""
高斯滤波
"""
gaussian_blur = cv2.GaussianBlur(gaussian_img, (5, 5), 0, 0)
sp_blur = cv2.GaussianBlur(sp_img, (5, 5), 0, 0)
h1 = np.hstack([gaussian_img, gaussian_blur])
h2 = np.hstack([sp_img, sp_blur])
v = np.vstack([h1, h2])
cv2.imwrite(r"C:\Users\Lenovo\Desktop\DIP\gaussian_filter.jpg", v)
cv2.imshow('out', v)
cv2.waitKey()

🦄6.2.2 实验结果

【OpenCV-Python】:基于均值、中值、方框、双边和高斯滤波的图像去噪

  • 第一幅图为被高斯噪声污染的图像;
  • 第二幅图为使用高斯滤波对第一幅图去噪后的图像;
  • 第三幅图为被椒盐噪声污染的图像;
  • 第四幅图为使用高斯滤波对第三幅图去噪后的图像。

🦄6.2.3 指标参数

gaussian_psnr, sp_psnr, gaussian_ssim, sp_ssim, gaussian_mse, sp_mse = compare(original, gaussian_blur, sp_blur)
print('高斯滤波对高斯噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(gaussian_psnr, gaussian_ssim, gaussian_mse))
print('高斯滤波对椒盐噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(sp_psnr, sp_ssim, sp_mse))

结果为:

高斯滤波对高斯噪声污染图像去噪后的指标为:PSNR:27.80345326784865,SSIM:0.7496298168722767,MSE:107.82886505126953
高斯滤波对椒盐噪声污染图像去噪后的指标为:PSNR:26.360239863855103,SSIM:0.6420068535144939,MSE:150.33370971679688

从指标结果可以看出,高斯滤波对高斯噪声的去除能力更强!文章来源地址https://www.toymoban.com/news/detail-446590.html

😺七、全部代码

import numpy as np
import cv2
from skimage.measure import compare_ssim, compare_psnr, compare_mse

original = cv2.imread(r"C:\Users\Lenovo\Desktop\DIP\lena1.jpg")
gaussian_img = cv2.imread(r"C:\Users\Lenovo\Desktop\DIP\gaussian.jpg")
sp_img = cv2.imread(r"C:\Users\Lenovo\Desktop\DIP\sp.jpg")

def compare(ori, gaussian_denosing, sp_denosing):

    # ori为原图(未被噪声污染的图),gaussian_denosing为经过高斯噪声污染的图通过去噪算法去噪后的图;sp_denosing为经过椒盐噪声污染的图通过去噪算法去噪后的图
    gaussian_psnr = compare_psnr(ori, gaussian_denosing)
    sp_psnr = compare_psnr(ori, sp_denosing)

    gaussian_ssim = compare_ssim(ori, gaussian_denosing, multichannel=True)
    sp_ssim = compare_ssim(ori, sp_denosing, multichannel=True)

    gaussian_mse = compare_mse(ori, gaussian_denosing)
    sp_mse = compare_mse(ori, sp_denosing)

    return gaussian_psnr, sp_psnr, gaussian_ssim, sp_ssim, gaussian_mse, sp_mse

"""
均值滤波
"""
gaussian_blur = cv2.blur(gaussian_img, (3, 3))
sp_blur = cv2.blur(sp_img, (3, 3))
h1 = np.hstack([gaussian_img, gaussian_blur])
h2 = np.hstack([sp_img, sp_blur])
v = np.vstack([h1, h2])
cv2.imwrite(r"C:\Users\Lenovo\Desktop\DIP\mean_filter.jpg", v)
cv2.imshow('out', v)
cv2.waitKey()

gaussian_psnr, sp_psnr, gaussian_ssim, sp_ssim, gaussian_mse, sp_mse = compare(original, gaussian_blur, sp_blur)
print('均值滤波对高斯噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(gaussian_psnr, gaussian_ssim, gaussian_mse))
print('均值滤波对椒盐噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(sp_psnr, sp_ssim, sp_mse))

"""
中值滤波
"""
gaussian_blur = cv2.medianBlur(gaussian_img, 3)
sp_blur = cv2.medianBlur(sp_img, 3)
h1 = np.hstack([gaussian_img, gaussian_blur])
h2 = np.hstack([sp_img, sp_blur])
v = np.vstack([h1, h2])
cv2.imwrite(r"C:\Users\Lenovo\Desktop\DIP\median_filter.jpg", v)
cv2.imshow('out', v)
cv2.waitKey()

gaussian_psnr, sp_psnr, gaussian_ssim, sp_ssim, gaussian_mse, sp_mse = compare(original, gaussian_blur, sp_blur)
print('中值滤波对高斯噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(gaussian_psnr, gaussian_ssim, gaussian_mse))
print('中值滤波对椒盐噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(sp_psnr, sp_ssim, sp_mse))

"""
方框滤波
"""
gaussian_blur = cv2.boxFilter(gaussian_img, -1, (3, 3), normalize=0)
sp_blur = cv2.boxFilter(sp_img, -1, (3, 3), normalize=0)
h1 = np.hstack([gaussian_img, gaussian_blur])
h2 = np.hstack([sp_img, sp_blur])
v = np.vstack([h1, h2])
cv2.imwrite(r"C:\Users\Lenovo\Desktop\DIP\box_filter.jpg", v)
cv2.imshow('out', v)
cv2.waitKey()

gaussian_psnr, sp_psnr, gaussian_ssim, sp_ssim, gaussian_mse, sp_mse = compare(original, gaussian_blur, sp_blur)
print('方框滤波对高斯噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(gaussian_psnr, gaussian_ssim, gaussian_mse))
print('方框滤波对椒盐噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(sp_psnr, sp_ssim, sp_mse))

"""
双边滤波
"""
gaussian_blur = cv2.bilateralFilter(gaussian_img, 25, 100, 100)
sp_blur = cv2.bilateralFilter(sp_img, 25, 100, 100)
h1 = np.hstack([gaussian_img, gaussian_blur])
h2 = np.hstack([sp_img, sp_blur])
v = np.vstack([h1, h2])
cv2.imwrite(r"C:\Users\Lenovo\Desktop\DIP\bilateral_filter.jpg", v)
cv2.imshow('out', v)
cv2.waitKey()

gaussian_psnr, sp_psnr, gaussian_ssim, sp_ssim, gaussian_mse, sp_mse = compare(original, gaussian_blur, sp_blur)
print('双边滤波对高斯噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(gaussian_psnr, gaussian_ssim, gaussian_mse))
print('双边滤波对椒盐噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(sp_psnr, sp_ssim, sp_mse))

"""
高斯滤波
"""
gaussian_blur = cv2.GaussianBlur(gaussian_img, (5, 5), 0, 0)
sp_blur = cv2.GaussianBlur(sp_img, (5, 5), 0, 0)
h1 = np.hstack([gaussian_img, gaussian_blur])
h2 = np.hstack([sp_img, sp_blur])
v = np.vstack([h1, h2])
cv2.imwrite(r"C:\Users\Lenovo\Desktop\DIP\gaussian_filter.jpg", v)
cv2.imshow('out', v)
cv2.waitKey()

gaussian_psnr, sp_psnr, gaussian_ssim, sp_ssim, gaussian_mse, sp_mse = compare(original, gaussian_blur, sp_blur)
print('高斯滤波对高斯噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(gaussian_psnr, gaussian_ssim, gaussian_mse))
print('高斯滤波对椒盐噪声污染图像去噪后的指标为:PSNR:{},SSIM:{},MSE:{}'.format(sp_psnr, sp_ssim, sp_mse))

到了这里,关于【OpenCV-Python】:基于均值、中值、方框、双边和高斯滤波的图像去噪的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV-Python(48):K均值聚类

    学习K值聚类的概念以及工作原理。 K均值聚类的OpenCV实现         下面用一个最常用的例子来给大家介绍K 值聚类。         话说有一个公司要生产一批新的T 恤。很明显他们要生产不同大小的T 恤来满足不同客客的要求。所以这个公司搜集了很多人的身高和体重信息,

    2024年01月20日
    浏览(30)
  • OpenCV 入门教程:中值滤波和双边滤波

    在图像处理和计算机视觉领域,中值滤波和双边滤波是两种常见的滤波方法,用于平滑图像、去除噪声等。 OpenCV 提供了中值滤波和双边滤波的实现函数,使得图像处理更加灵活和高效。本文将以中值滤波和双边滤波为中心,为你介绍使用 OpenCV 进行滤波操作的基本步骤和实例

    2024年02月13日
    浏览(25)
  • OpenCV(二十二):均值滤波、方框滤波和高斯滤波

    目录 1.均值滤波 2.方框滤波 3.高斯滤波 1.均值滤波        OpenCV中的均值滤波(Mean Filter)是一种简单的滤波技术,用于平滑图像并减少噪声。它的原理非常简单:对于每个像素,将其与其周围邻域内像素的平均值作为新的像素值。 具体的均值滤波原理如下: 定义滤波器大小

    2024年02月09日
    浏览(26)
  • Opencv-图像噪声(均值滤波、高斯滤波、中值滤波)

    图像噪声是图像处理中常见的问题,它是由于各种原因引入的不希望的随机变化或干扰,导致图像质量下降。噪声可以出现在图像的亮度、颜色和纹理等方面,对图像分析、计算机视觉和图像处理任务造成困难。为了减少或消除图像中的噪声,常常使用不同类型的滤波技术。

    2024年02月04日
    浏览(40)
  • 【OpenCV-Python】——机器学习kNN算法&SVM算法&k均值聚类算法&深度学习图像识别&对象检测

    目录 前言: 1、机器学习 1.1 kNN算法 1.2 SVM算法(支持向量机)  1.3 k均值聚类算

    2024年02月05日
    浏览(35)
  • 基于MATLAB对彩色图像去噪的代码,均值滤波,中值滤波,空域低通滤波。

    本文主要为代码展示,未对所用算法进行较为详细的文字介绍,请读者见谅。如有建议,欢迎私信。   MATLAB调用格式为: J=imnoise(I,type)或者J=imnoise(I,type,parameters)。将类型噪声添加到灰度图像。 其中,I为原始图像,J为有噪图像,参数type和parameters用于确定噪声类型和相应的参

    2024年02月06日
    浏览(37)
  • python实现对图片进行均值滤波、中值滤波、高斯滤波处理及其原理和特点

    1.高斯滤波         1)原理:对图像邻域内像素进行平滑时,邻域内不同位置的像素被赋予不同的权值。         2)特点:对图像进行平滑的同时,同时能够更多的保留图像的总体灰度分布特征。         3)代码         4)效果图(左原图)  2.均值滤波         1)

    2024年02月06日
    浏览(31)
  • 基于OpenCV-Python的图像位置校正和版面分析

    使用opencv对图像进行操作,要求:(1)定位银行票据的四条边,然后旋正。(2)根据版面分析,分割出小写金额区域。 首先是对图像的校正 读取图片 对图片二值化 进行边缘检测 对边缘的进行霍夫曼变换 将变换结果从极坐标空间投影到笛卡尔坐标得到倾斜角 根据倾斜角对

    2024年01月19日
    浏览(30)
  • Python实现:高斯滤波 均值滤波 中值滤波 Canny(边缘检测)PCA主成分分析 直方图规定化 Mean_Shift

    左侧为原图右侧为高斯滤波后的图 左图为带有噪声的输入原图,右图为经过均值滤波后的图片 左图为带有噪声的输入原图,右图为经过中值滤波后的图 上图为输入原图,下图为经过Canny边缘检测后的图 上图为原图 中图为规定目标图 下图为原图经过规定化后的图 左图为原输

    2024年02月07日
    浏览(31)
  • opencv-python基于计算机视觉的答题卡识别及判分系统ocr

    python  django  mysql 基于计算机视觉的答题卡识别及判分系统设计与实现 通过查阅资料和文献在充分掌握OpenCV图像处理开源框架,采用Python开发语言、实现简单答题卡识别系统,其基本功能包括:1,对答题卡进行图像处理;2,识别答题卡的选择题选项;3,将选择题所选答案与

    2024年02月20日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包