卷积&模糊

什么是卷积呢?

---卷积就是对两个函数进行数学运算产生第三个函数!

1、Kernel:内核采集区域

2、Blurring:模糊算法(方式有取大、取小)


卷积&模糊_第1张图片
实例

来先举例说明,来读取张原图,等会还做对比

import cv2

import numpy  as np

image = cv2.imread('images/Hillary.jpg')

cv2.imshow('Original Image',image)

cv2.waitKey()


卷积&模糊_第2张图片
原图

再创建个9*9的的内核(处理之后的图片和原图的大小是一样的)

kernel_9 = np.ones((9,9),np.float32) / 81

blurred9 = cv2.filter2D(image,-1,kernel_9)  #检测到核中心的部位的色值会平均到周围,这样来造成模糊的效果,内核的区域越大会导致越模糊

#这个的模糊处理和马赛克是有区别的

#马赛克是通过遮罩的方式加在上面产生模糊(博码,后码);

#这个是直接对原图通过操作内核的方式直接处理;

#cv2.filter2D(对那个图片做处理,如果是全局的话是-1,用什么内核)

cv2.imshow("9x9",blurred9)

cv2.waitKey()


卷积&模糊_第3张图片
9*9处理之后的图片

2、用另外种方式处理模糊度

import cv2

import numpy as np

image = cv2.imread('images/Hillary.jpg')

#通过归一化的处理,内核进行卷积完成平均

blur = cv2.blur(image,(9,9))#把图片那进来,设定一个范围,直接做模糊处理

cv2.imshow("Averaging",blur)

cv2.waitKey()


卷积&模糊_第4张图片
Blur方式

下面在看通过中位数处理方式

import cv2

import numpy as np

image = cv2.imread('images/Hillary.jpg')

#中位数处理方式

mdianblur = cv2.medianBlur(image,9) #还是9*9

cv2.imshow("mdianblur",mdianblur)

cv2.waitKey()


卷积&模糊_第5张图片
通过中位数处理,模糊效果还是有差异,请细心观察

高斯处理:

import cv2

import numpy as np

image = cv2.imread('images/Hillary.jpg')

#高斯处理方式

gaussian = cv2.GaussianBlur(image,(7,7),0)#颜色会有 些差异会柔和些

cv2.imshow("Gaussing",gaussian)

cv2.waitKey()

卷积&模糊_第6张图片
高斯处理

去燥,杂音一样的像素进行处理,具有美颜效果

import cv2

import numpy as np

image = cv2.imread('images/Hillary.jpg')

#去燥,会让图片更加清晰

bilateral = cv2.bilateralFilter(image,9,75,75)#处理完,可以看到像素的锯齿特别细腻

#75,75 齿距 两边的留存率75%

cv2.imshow("bilateral",bilateral)

cv2.waitKey()

卷积&模糊_第7张图片
去燥之后的图片

你可能感兴趣的:(卷积&模糊)