今天小编主要讲解如何用OpenCV处理图片,处理模糊、轮廓、浮雕和锐化的效果。
1、模糊效果
#OpenCV图像卷积操作
import cv2
import numpy as np
from opencv_jupyter_ui import cv2_imshow
#导入图片
img = cv2.imread('./images/dog.png')
#卷积核
#相当于原始图片中的每个点都被平均了一下,所以图像变模糊了.
kernel = np.ones((5, 5), np.float32) / 25
dst = cv2.filter2D(img, -1, kernel)
#很明显卷积之后的图片模糊了
cv2_imshow('img', np.hstack((img, dst)))
2、突出轮廓效果
import cv2
import numpy as np
from opencv_jupyter_ui import cv2_imshow
#导入图片
img = cv2.imread('./images/dog.png')
#其他卷积核,突出轮廓
kernel = np.array([[-3, 0, 3],[-10, 0, 10],[-3, 0, 3]], np.float32)
dst = cv2.filter2D(img, -1, kernel)
cv2_imshow('img', np.hstack((img, dst)))
3、浮雕效果
import cv2
import numpy as np
from opencv_jupyter_ui import cv2_imshow
#导入图片
img = cv2.imread('./images/dog.png')
#浮雕效果
kernel = np.array([[-1, -1, 0],[-1, 0, 1], [ 0, 1, 1]], np.float32)
dst = cv2.filter2D(img, -1, kernel)
cv2_imshow('img', np.hstack((img, dst)))
4、锐化效果
import cv2
import numpy as np
from opencv_jupyter_ui import cv2_imshow
#导入图片
img = cv2.imread('./images/dog.png')
#锐化
kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]], np.float32)
dst = cv2.filter2D(img, -1, kernel)
cv2_imshow('img', np.hstack((img, dst)))

全部评论