opencv影象處理(二):濾波器
阿新 • • 發佈:2018-12-06
濾波器在影象處理中的應用非常廣泛,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)
結果: