opencv(二)之图像阈值与平滑处理

接着上一次的文章:
https://blog.csdn.net/qq_42839893/article/details/108027070
还是用这只猫咪:
opencv(二)之图像阈值与平滑处理_第1张图片
进行灰度处理有利于后续操作:

img_gray = cv2.imread("cat.jpg", cv2.IMREAD_GRAYSCALE)

opencv(二)之图像阈值与平滑处理_第2张图片
opencv(二)之图像阈值与平滑处理_第3张图片

1.最简单的阈值处理

#超过阈值(127)部分,取maxval(255,白色),否则取0(黑色)
ret , thresh1  = cv2.threshold(img_gray, 127 ,255, cv2.THRESH_BINARY)

opencv(二)之图像阈值与平滑处理_第4张图片

2.最简单的阈值处理de反转

#为第一种情况的反转

res , thresh2= cv2.threshold(img_gray, 127 ,255, cv2.THRESH_BINARY_INV)

opencv(二)之图像阈值与平滑处理_第5张图片

3.截断处理(to_阈值)

 #大于阈值部分设置为阈值,否则不变
res,  thresh3 = cv2.threshold(img_gray , 127, 255, cv2.THRESH_TRUNC)

opencv(二)之图像阈值与平滑处理_第6张图片

4.截断处理(to_zero)

 #超过阈值部分不改变,否则为0
res  , thresh4 = cv2.threshold(img_gray , 127, 255 , cv2.THRESH_TOZERO)
cv_show("thresh4",thresh4)

opencv(二)之图像阈值与平滑处理_第7张图片

5.截断处理的反转(to_zero)

#第四种情况的反转
res  , thresh5 = cv2.threshold(img_gray , 127, 255 ,cv2.THRESH_TOZERO_INV)
cv_show("thresh5",thresh5)

opencv(二)之图像阈值与平滑处理_第8张图片
接下来介绍,# 图像平滑处理(各种滤波操作)

import cv2
img = cv2.imread("cat.jpg")

1.均值滤波

#简单的平均卷积操作

blur = cv2.blur(img,(3,3))
cv2.imshow("img2", blur)
cv2.waitKey(0)
cv2.destroyAllWindows()

opencv(二)之图像阈值与平滑处理_第9张图片

2.方框滤波

#基本和均值一样,可以选择归一化

box = cv2.boxFilter(img ,  -1 , (3,3) , normalize = True)
cv2.imshow("img3",box)
cv2.waitKey(0)
cv2.destroyAllWindows()

opencv(二)之图像阈值与平滑处理_第10张图片

box = cv2.boxFilter(img ,  -1 , (3,3) , normalize = False)
cv2.imshow("img3",box)
cv2.waitKey(0)
cv2.destroyAllWindows()
#若越界,会直接取255

opencv(二)之图像阈值与平滑处理_第11张图片

3.高斯滤波

#高斯滤波
#卷积核里的数值是满足高斯分布的,相当于更加重视中间
aussian = cv2.GaussianBlur(img_cat,(3,3) , 1)

cv2.imshow("aussian" , aussian)
cv2.waitKey(0)
cv2.destroyAllWindows()

opencv(二)之图像阈值与平滑处理_第12张图片

4.中值滤波

#该方法对“噪音点”处理效果较好
#中值滤波
#相当于用中值代替

median = cv2.medianBlur(img, 5 )
cv2.imshow("median" , median)
cv2.waitKey(0)
cv2.destroyAllWindows()

opencv(二)之图像阈值与平滑处理_第13张图片

5.展示所有的

import numpy as np
res =  np.hstack((blur, aussian, median)) #这里是横着展示的
#也可以选择竖着展示
cv2.imshow("blur, aussian, median" , res)
cv2.waitKey(0)
cv2.destroyAllWindows()
(太长了,就不展示出来了)

你可能感兴趣的:(opencv,opencv,卷积,计算机视觉,cv)