第四天 opencv 影象變換和空間影象濾波
阿新 • • 發佈:2018-12-17
####################這段是轉載,解釋影象變換和空間濾波區別即cv.medianBlur和cv.filter2D#######
在空間域的操作主要可以分為兩類:第一類是所謂的“影象強度變換”(Intensity Transform),另一類是所謂的“空間域影象濾波”(Spatial Filtering)。這兩者的區別主要是處理方法的不同。前者對單個畫素點進行操作,例如通過閾值函式實現圖形的二值化,實現灰度平均等。而後者建立在鄰域(neighborhood)的概念上,講究的是利用一個矩陣核(Kernel)對一個小區域進行操作。今天這篇文章主要介紹的是後者,以及如何用OpenCV中的函式去實現。
我們先來看下面的這個公式,以及它的矩陣表示形式:
######################################################################################
import cv2 as cv def blur_demo(image): dst = cv.blur(image,(15,1)) ##均值模糊原理卷積 cv.imshow("blur_demo",dst) def median_blur_demo(image): ##中值迷糊 dst = cv.medianBlur(image, 5) cv.imshow("median_blur_demo", dst) def custom_blur_demo(image): ##銳化模糊 空間濾波 #kernel = np.ones([5, 5], np.float32)/25 kernel = np.array([[-1,0,1][0, -1, 0],[-1, 5, -1],[0, -1, 0]], np.float32) dst = cv.filter2D(image, -1, kernel=kernel) cv.imshow("custom_blur_demo", dst) print("--------- Python OpenCV Tutorial ---------") src = cv.imread("C:/Users/weiqiangwen/Desktop/sest/contours.png") cv.namedWindow("input contours",cv.WINDOW_AUTOSIZE) cv.imshow("contours", src) blur_demo(src) cv.waitKey(0) cv.destroyAllWindows()