python-OpenCV图像阈值处理和平滑处理

一、图像的阈值处理

ret, dst = cv2.threshold(src=,thresh=,maxval=,type=)
dst:输出图
src:输入图,只能是单通道图像,通常来说为灰度图
thresh:阈值
maxval:当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值
type:二值化操作的类型和,包含以下五种
cv2.THRESH_BINARY 超过阈值部分取maxval(最大值),否则0
cv2.THRESH_BINARY_INV 小于阈值部分取maxval(最大值) 否则0
cv2.THRESH_TRUNC 大于阈值部分设为阈值,否则不变
cv2.THRESH_TOZERO 大于阈值部分不改变,否则设为0
cv2.THRESH_TOZERO_INV 小于阈值部分不改变吗,否则设为0

import cv2

img_h = cv2.imread(r"C:\Users\admin\Desktop\yy.jpg", cv2.IMREAD_GRAYSCALE)
# 超过阈值部分取maxval(最大值),否则0
ret1,img1 = cv2.threshold(img_h,127,255,cv2.THRESH_BINARY)
# 小于阈值部分取maxval(最大值)  否则0
ret2,img2 = cv2.threshold(img_h,127,255,cv2.THRESH_BINARY_INV)
# 大于阈值部分设为阈值,否则不变
ret3,img3 = cv2.threshold(img_h,127,255,cv2.THRESH_TRUNC)
# 大于阈值部分不改变,否则设为0
ret4,img4 = cv2.threshold(img_h,127,255,cv2.THRESH_TOZERO)
# 小于阈值部分不改变吗,否则设为0
ret5,img5 = cv2.threshold(img_h,127,255,cv2.THRESH_TOZERO_INV)
titles = ["ORIGINAL", "BINARY", "BINARY_INV", "TRUNC", "TOZERO", "TOZERO_INV"]
imgs = [img_h,img1,img2,img3,img4,img5]
for i in range(6):
    plt.subplot(2,3,i+1),plt.imshow(imgs[i],"gray")
    plt.title(titles[i])
    plt.xticks([]), plt.yticks([])
plt.show()

效果如下
在这里插入图片描述

二、图像的平滑处理

img = cv2.imread(r"C:\Users\admin\Desktop\yy2.jpg", cv2.IMREAD_GRAYSCALE)

# 均值滤波
# 简单的平均卷积操作
# (3,3)为每次处理矩阵的大小
# 比如3*3的矩阵9个数,9个数相加除以9来代替中间点的像素值
blur = cv2.blur(img, (3, 3))

# 方框滤波
# normalize=True时,基本和均值一样,可以选择归一化
# -1 基本为常量
box = cv2.boxFilter(img,-1,(3,3),normalize=True)
# 方框滤波
# normalize=False,容易越界,因为超过255,则就255
# 比如3*3的矩阵9个数,9个数相加代替中间点的像素值,超过255则为255
box = cv2.boxFilter(img,-1,(3,3),normalize=False)

# 高斯滤波
# 卷积核是满足高斯分布,相当于更重视中间的像素值
aussian = cv2.GaussianBlur(img, (5,5), 1)

# 中值滤波
# 相当于用中值代替
# 比如3*3的矩阵9个数,取中值来代替中间点的像素值
median = cv2.medianBlur(img, 5)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值