[OpenCV][Python]銳化濾波器_影像銳化

[OpenCV][Python]銳化濾波器_影像銳化

更新於 發佈於 閱讀時間約 2 分鐘

常見的圖像銳利化方法:

  1. 銳化濾波器:使用 OpenCV 的 cv2.filter2D 函數搭配適當的濾波核(如拉普拉斯濾波器)可以進行圖像銳利化。
  2. 增強對比度:可以通過調整圖像的對比度來增強圖像的銳利度,這可以通過直方圖均衡化或對比度增強的方法來實現。
  3. Unsharp Masking:這是一種常見的圖像銳化技術,通過將原始圖像和模糊版本的圖像相減,再加回原始圖像,可以得到銳利化的效果。



以下將實現銳化濾波器來實現圖像銳化:

raw-image

程式範例

import cv2
import numpy as np

# 讀取圖像
image = cv2.imread('path_to_image.jpg')

# 定義拉普拉斯濾波器
kernel = np.array([[0, -1, 0],
[-1, 5, -1],
[0, -1, 0]])

# 使用濾波器進行圖像銳化
sharpened_image = cv2.filter2D(image, -1, kernel)

# 顯示原圖和銳化後的圖像
cv2.imshow('Original Image', image)
cv2.imshow('Sharpened Image', sharpened_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

這個濾波核的中心值是5,周圍元素值是-1,這樣可以使得中心元素值比周圍元素值的加權和大,從而增強邊緣的對比度,達到圖像銳化的效果

kernel = np.array([[0, -1, 0],
[-1, 5, -1],
[0, -1, 0]])




avatar-img
螃蟹_crab的沙龍
137會員
243內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言
avatar-img
留言分享你的想法!
螃蟹_crab的沙龍 的其他內容
色差檢測在許多應用中非常重要,如印刷、織物、塗料等。色差的測量通常使用 CIEDE2000 色差公式來計算兩個顏色之間的差異。 本文將檢測以下織物圖,分析出兩者的色差 程式範例 流程: 先利用K-Means分群的方式,分割出主要顏色,在用delta_e_cie2000來檢測色差 主要安裝
上一篇提到利用cv2.inRangex,建立遮罩來過濾出紅球。這次我們稍微更動一下程式碼,將紅球變顏色。 [OpenCV][Python]利用cv2.inRange搭配cv2.bitwise_and過濾紅球 結果圖 將紅球改變顏色成藍球
首先我們先用小畫家,創建一個簡單的十字箭頭圖,在用高斯模糊將圖用模糊來模擬圖片糊掉的狀況。 如何檢測呢? 先假設在圖像清晰的狀況下,取邊緣的話線條應該是很明顯的吧,模糊的情況下,邊緣線條應該就會變多? 看下圖,由左看到右,在圖片清晰的狀況下,線條是相當明顯的 那有什麼方法將其量化成數字?
用小畫家隨意畫三個圈分別用紅藍綠,我們利用cv2.inRange與搭配cv2.bitwise_and,將紅球過濾出來吧。 程式範例 因為OpenCV中cv2.imread讀取圖檔預設讀取是為[B,G,R]的格式,所以設置紅色範圍要注意設定在R的範圍內。
使用cv2.imread讀取圖片時,如果路徑有包含到中文,就會報錯。 本文將提供另外一個方式cv2.imdecode,路徑有包含到中文時仍可以正常讀取圖片。 測試範例 import cv2 img = cv2.imread('D:/CRABpy/write/圖檔/chars_01.png'
本文將介紹,在圖像中找出最大矩形的物件來定位。
色差檢測在許多應用中非常重要,如印刷、織物、塗料等。色差的測量通常使用 CIEDE2000 色差公式來計算兩個顏色之間的差異。 本文將檢測以下織物圖,分析出兩者的色差 程式範例 流程: 先利用K-Means分群的方式,分割出主要顏色,在用delta_e_cie2000來檢測色差 主要安裝
上一篇提到利用cv2.inRangex,建立遮罩來過濾出紅球。這次我們稍微更動一下程式碼,將紅球變顏色。 [OpenCV][Python]利用cv2.inRange搭配cv2.bitwise_and過濾紅球 結果圖 將紅球改變顏色成藍球
首先我們先用小畫家,創建一個簡單的十字箭頭圖,在用高斯模糊將圖用模糊來模擬圖片糊掉的狀況。 如何檢測呢? 先假設在圖像清晰的狀況下,取邊緣的話線條應該是很明顯的吧,模糊的情況下,邊緣線條應該就會變多? 看下圖,由左看到右,在圖片清晰的狀況下,線條是相當明顯的 那有什麼方法將其量化成數字?
用小畫家隨意畫三個圈分別用紅藍綠,我們利用cv2.inRange與搭配cv2.bitwise_and,將紅球過濾出來吧。 程式範例 因為OpenCV中cv2.imread讀取圖檔預設讀取是為[B,G,R]的格式,所以設置紅色範圍要注意設定在R的範圍內。
使用cv2.imread讀取圖片時,如果路徑有包含到中文,就會報錯。 本文將提供另外一個方式cv2.imdecode,路徑有包含到中文時仍可以正常讀取圖片。 測試範例 import cv2 img = cv2.imread('D:/CRABpy/write/圖檔/chars_01.png'
本文將介紹,在圖像中找出最大矩形的物件來定位。