图像的的基本操作
去除图片噪音的几种方式如下:
均值滤波
方框滤波
高斯滤波
中值滤波(效果最好)
candy进行边缘检测(其中用的是sobel算子)
import cv2 as cv
import numpy as np
image = cv.imread("D:\APP\PycharmProjects\pythonProject\learn_opencv\images\sp_noise.png")
# cv.imshow("image",image)
# 均值滤波
# 简单的平均卷积操作
blur = cv.blur(image,(3,3))
# cv.imshow("blur",blur)
# 方框滤波
# 基本和均值一样,可以选择归一化
box = cv.boxFilter(image,-1,(3,3),normalize=True)
# box = cv.boxFilter(image,-1,(3,3),normalize=False)
# cv.imshow("box",box)
# 高斯滤波
# 高斯模糊的卷积核里面的数值是满足高斯分布,相当于更加重视中间的
gussian = cv.GaussianBlur(image,(5,5),1)
cv.imshow("gaussian",gussian)
# 中值滤波(去掉噪音的效果最好)
# 相当于用中值替代
mdeian = cv.medianBlur(image,5)
# cv.imshow("median",mdeian)
# 显示所有的
res = np.hstack((blur,gussian,mdeian))
# print(res)
cv.imshow("all",res)
# candy进行边缘检测
img = cv.imread("D:\APP\PycharmProjects\pythonProject\learn_opencv\images\lena.png",cv.IMREAD_GRAYSCALE)
candy1 = cv.Canny(img,70,150)
candy2 = cv.Canny(img,120,150)
candy = np.hstack((candy1,candy2))
cv.imshow("candy",candy)
cv.waitKey(0)
cv.destroyAllWindows()