第四天 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()

猜你喜欢

转载自blog.csdn.net/qq_32340685/article/details/83345133