簡體   English   中英

使用OpenCV和Python從圖像中去除黑點

[英]removing black dots from image using OpenCV and Python

我正在嘗試比較兩個圖像,並且需要在與數字副本進行比較之前對它們進行預處理/清理,這是掃描副本。 掃描副本 / 數碼副本

我在掃描的圖像上運行此代碼,並獲得了包含許多黑點的輸出。 不確定如何清理這些內容,以便可以與數字副本進行比較

img = cv2.multiply(img, 1.2)
kernel = np.ones((1, 1), np.uint8)
img = cv2.erode(img, kernel, iterations=1)
kernel1 = np.zeros( (9,9), np.float32)
kernel1[4,4] = 2.0
boxFilter = np.ones( (9,9), np.float32) / 81.0
kernel1 = kernel1 - boxFilter
img = cv2.filter2D(img, -1, kernel1)

以下是我得到的輸出

輸出圖像

嘗試在頻域中應用濾波器,由於圖像噪聲,FFT后的圖像將具有規則的亮點。 如果要刪除這些點並進行逆FFT變換,則將從圖像中刪除點。 請檢查以下示例: example1example2example3

是。 @Andrey方法是解決問題的正確方法。 我嘗試過去除頻域中的高頻點,這是一個示例,說明正確完成后的效果

灰度原始圖像。

在此處輸入圖片說明

在圖像上運行FFT之后

在此處輸入圖片說明

消除所有高頻噪聲。 當然,這可以通過在噪聲源周圍繪制一個黑圈來手動完成。 您可以設計程序來檢測局部亮點並將其干凈地去除。

在此處輸入圖片說明

這是上述頻率圖像的逆FFT之后的最終結果。 一些由於我去除噪音的粗略方法而導致的性能下降,但是它應該使您大致了解如何實現。

在此處輸入圖片說明

此過程僅影響點周圍的區域,而所有其他圖案均保持其原始形式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM