第四天 opencv 图像变换和空间图像滤波
####################这段是转载,解释图像变换和空间滤波区别即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()