簡體   English   中英

如何在 python 中檢測並填充圖像中的一個像素間隙

[英]How do I detect and fill one pixel gaps in image in python

我想拍一張像這樣的圖像:在此處輸入圖像描述

讓它看起來更像這樣:

在此處輸入圖像描述

我的想法是你可以看一行 3 個像素,如果最左邊和最右邊的像素是綠色的,那么填充 cinter 一個,然后做同樣的事情,但使用 3 個水平像素。 運行 3 或 4 次就可以解決大部分問題。

您可以使用OpenCV Python 庫進行此類操作。

更具體地說,您可以使用 OpenCV 中提供的形態變換

形態變換是基於圖像形狀的一些簡單操作。 它通常在二進制圖像上執行。 它需要兩個輸入,一個是我們的原始圖像,第二個稱為結構元素或 kernel,它決定了操作的性質。 兩個基本的形態算子是侵蝕和膨脹。 然后它的變體 forms 像打開,關閉,漸變等也開始發揮作用。 我們將在下圖的幫助下一一看到它們

您可以使用關閉運算符,即:

關閉與打開相反,膨脹后腐蝕。 它可用於關閉前景物體內部的小孔,或 object 上的小黑點。

結果看起來像這樣:

在此處輸入圖像描述

代碼看起來像這樣(您需要加載圖像並定義kernel

import cv2
import numpy as np

img = cv2.imread('<path_to_your_image>',0)
kernel = np.ones((5,5),np.uint8)

closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

暫無
暫無

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

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