圖像線性濾波——目的就是濾去噪聲,但是邊緣會模糊,整體也模糊
線性:鄰域平均法(4鄰域平均和8鄰域平均)
用當前運算點所在鄰域的平均值來代替該點的平均值
im_for_read="D:\AAAproject\PYproject\EXPERuse\zaosheng.jpg"
img=cv2.imread(im_for_read,-1)
blur_img = cv2.blur(img, (5, 5))
cv2.imshow("img",img)
cv2.imshow("blur_img",blur_img)
cv2.waitKey(0)
圖像非線性濾波
中值濾波
周圍的所有像素點排序之后取中值(對干擾噪聲和點噪聲有著良好的作用)但是會讓圖像的邊界變得模糊,,會丟失尖角的地方
中值濾波可以用十字形,x型,方形,菱形,圓形(根據噪聲方向處理)
median_img = cv2.medianBlur(img, 5)
cv2.imshow("median_img",median_img)
高斯模糊濾波
gaussian_blur_img = cv2.GaussianBlur(img, (5, 5), 0)
圖像微分
空域微分法:sobel算子
梯度最大的地方就是輪廓(離散的函數圖像求微分)Sobel算子實際上包含了一對3x3卷積核,分別用于計算水平方向(Gx)和垂直方向(Gy)上的近似偏導數。然后,這兩個方向上的結果可以組合起來得到每個像素點的梯度幅值和方向。
也有拉普拉斯算子
拉普拉斯算子是一個二階導數算子,它通過計算圖像的二階導數來尋找零交叉點以確定邊緣位置。在實際應用中,通常使用拉普拉斯的離散化版本,用來銳化