目录
图片链接
跟着峰哥学计算机视觉所有需要用到的图片-深度学习文档类资源-CSDN下载
概念
什么是梯度运算
模板运算
是梯度相关的运算
锐化
加强像素与像素之间的差异
降噪(模糊)
减弱像素与像素之间的差异
均值滤波
高斯滤波
中值滤波
边沿检测
边沿检测效果
锐化
代码
图像模糊化处理
# 图像模糊化处理
import cv2
import numpy as np
# 中值滤波
im = cv2.imread("../data/lena.jpg", 0)
cv2.imshow("im",im)
cv2.waitKey()
cv2.destroyAllWindows()
显示图像
# 图像模糊化处理
import cv2
import numpy as np
im = cv2.imread("../data/lena.jpg", 0)
cv2.imshow("im", im)
# 中值滤波
im_median_blur = cv2.medianBlur(im,
5) # 滤波器的大小
cv2.imshow("im_median_blur ", im_median_blur)
cv2.waitKey()
cv2.destroyAllWindows()
中值滤波
# 图像模糊化处理
import cv2
import numpy as np
im = cv2.imread("../data/lena.jpg", 0)
cv2.imshow("im", im)
# 中值滤波
im_median_blur = cv2.medianBlur(im,
5) # 滤波器的大小
cv2.imshow("im_median_blur ", im_median_blur)
#均值滤波
im_mean_blur = cv2.blur(im,(3,3))
cv2.imshow("im_mean_blur",im_mean_blur)
cv2.waitKey()
cv2.destroyAllWindows()
高斯滤波
# 图像模糊化处理
import cv2
import numpy as np
im = cv2.imread("../data/lena.jpg", 0)
cv2.imshow("im", im)
# 中值滤波
im_median_blur = cv2.medianBlur(im,
5) # 滤波器的大小
cv2.imshow("im_median_blur ", im_median_blur)
# 均值滤波
im_mean_blur = cv2.blur(im, (3, 3))
cv2.imshow("im_mean_blur", im_mean_blur)
# 高斯滤波
im_guess_blur = cv2.GaussianBlur(im, # 原始图像
(5, 5), # 滤波器大小
3) # 高斯滤波和它的标准差
cv2.imshow("im_guess_blur ", im_guess_blur)
cv2.waitKey()
cv2.destroyAllWindows()
自定义高斯核
# 图像模糊化处理
import cv2
import numpy as np
im = cv2.imread("../data/lena.jpg", 0)
cv2.imshow("im", im)
# 自定义高斯核执行滤波计算(这个滤波器,中间大边缘小)
gaussian_blur = np.array([
[1, 4, 7, 4, 1],
[4, 16, 26, 16, 4],
[7, 26, 41, 26, 7],
[1, 4, 7, 4, 1]], np.float32) / 273
# 使用滤波器filter2D执行滤波计算
im_guassian_blur2 = cv2.filter2D(im, # 原始图像
-1, # 目标图像深度,-1表示和原图像相同
gaussian_blur) # 滤波器
cv2.imshow("im_guess_blur2", im_guassian_blur2)
cv2.waitKey()
cv2.destroyAllWindows()
图像的锐化
锐化算子1
import cv2
import numpy as np
im = cv2.imread("../data/lena.jpg", 0)
cv2.imshow("im", im)
# 锐化算子1
sharpen_1 = np.array([[-1, -1, -1],
[-1, 9, -1],
[-1, -1, -1]])
im_sharpen1 = cv2.filter2D(im, -1, sharpen_1)
cv2.imshow("im_sharpen1", im_sharpen1)
cv2.waitKey()
cv2.destroyAllWindows()
锐化算子2
import cv2
import numpy as np
im = cv2.imread("../data/lena.jpg", 0)
cv2.imshow("im", im)
# 锐化算子2
sharpen_2 = np.array([[0, -1, 0],
[-1, 8, -1],
[0, 1, 0]])/4.0
im_sharpen2 = cv2.filter2D(im, -1, sharpen_2)
cv2.imshow("im_sharpen2", im_sharpen2)
cv2.waitKey()
cv2.destroyAllWindows()