opencv图像处理(二):滤波器

     滤波器在图像处理中的应用非常广泛,OpenCV也有个直接使用滤波器掩码(核)的函数filter2D,将图像与核进行卷积运算得到目标图像。卷积是在每一个图像块与某个算子(核)之间进行的运算,而核就是一个固定大小的数值数组。

     实际上,在OpenCV中很多算法都是用卷积实现的,包括一些边缘检测的算法。本文无意列举这些算法的原理,仅仅是考察一下OpenCV的实现,再尝试用Python调用这些算法,看看其效果。


 直接利用 filter2D得到图片的滤波

# -*- coding: utf-8 -*-
# !/usr/bin/env python
# @Time    : 2018/11/19 15:42
# @Author  : xhh
# @Desc    : 图片滤波器
# @File    : opencv_filterImg.py
# @Software: PyCharm
import cv2
import numpy as np

# filter2D
img = cv2.imread('../tupian/green.png')
cv2.imshow('src', img)

 # 直接给出图片的滤波矩阵
kernel = np.array([ [-1, -1, -1],
                    [-1,  8, -1],
                    [-1, -1, -1] ])

filter_dst = cv2.filter2D(img, -1, kernel)

cv2.imshow('dst', filter_dst)
cv2.waitKey(0)

结果:

        

猜你喜欢

转载自blog.csdn.net/weixin_39121325/article/details/84253121