java图像平滑_图像平滑处理(示例代码)

本文介绍了Java中四种图像平滑处理方法:均值滤波、方块滤波、高斯滤波和中值滤波。通过示例代码展示了如何使用OpenCV库进行图像平滑操作,包括不同滤波器的选择和参数设置,以达到去除噪声和平滑图像的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,均值滤波:

任意一个点的像素都是周围N*N个像素值的均值,将N*N的大小称为核的大小核大小一般用元组表示:(行,列)

#图像平滑:均值滤波

#函数blur

#dst=cv2.blur(src,核):核的格式=(行,列)

import cv2

a=cv2.imread("imagelenaNoise.png")

r=cv2.blur(a,(5,5))

cv2.imshow("original",a)

cv2.imshow("result",r)

cv2.waitKey()

cv2.destroyAllWindows()

2方块滤波:

#图像平滑处理——方块滤波

#函数boxFilter

#dst=cv2.boxFiliter(src,目标图像深度,核大小,normalize属性)

#参数含义:目标图像深度:int类型的目标图像深度。通常设定为“-1”,表示与原始图像一致;

# normalize属性——是否对图像进行归一化处理;true(1):和均值滤波相同;

# false(0):一个点的像素值等于周围核大小区域内像素值的和,很容易发生溢出;

# 如果不指定,则默认为true

import cv2

o=cv2.imread("imagelenaNoise.png")

f=cv2.boxFilter(o,-1,(2,2),normalize=0)

t=cv2.boxFilter(o,-1,(5,5),normalize=1)

cv2.imshow("original",o)

cv2.imshow("false",f)

cv2.imshow("true",t)

cv2.waitKey()

cv2.destroyAllWindows()

20200226113249814756.png

3,高斯滤波

让临近的像素有更高的重要度,对周围的像素计算加权平均,较近的像素具有较大的平均值;核包含的元素权重不在相同,离这个点越近则权重越大。

#图像平滑处理——高斯滤波;

# GaussianBlur函数

#dst=cv2.GaussianBlur(src,ksize,sigmax);

# ksize——核大小,(N,N)N必须是奇数

# sigmax——x方向的方差,控制权重;y方向与x保持一致,一般情况设成0

#高斯按权重平滑处理图像就比均值滤波更精确一点

import cv2

o=cv2.imread("imagelenaNoise.png")

r=cv2.GaussianBlur(o,(3,3),0)

cv2.imshow("original",o)

cv2.imshow("result",r)

cv2.waitKey()

cv2.destroyAllWindows()

20200226113250094035.png

4.中值滤波

让临近的像素按大小顺序排列,取排序像素集中位于中间位置的值作为滤波后的像素值

#图像平滑处理——中值滤波

#medianBlur函数

#dst=cv2.medianBlur(src,ksize);

# ksize必须是比1大的奇数,格式就是int,不是元组了

#中值滤波的滤波效果比之前的都要好一点,不是平均值也不是加权平均值,由于取值还是点周围临近的像素,所以他能将一些奇异的点给过滤掉。

import cv2

o=cv2.imread("imagelenaNoise.png")

r=cv2.medianBlur(o,3)

cv2.imshow("original",o)

cv2.imshow("result",r)

cv2.waitKey()

cv2.destroyAllWindows()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值