gpt4 book ai didi

python - 使用 OpenCV 或 Skimage 填充图像中的孔洞

转载 作者:太空狗 更新时间:2023-10-30 02:41:20 25 4
gpt4 key购买 nike

我正在尝试为立体应用程序的棋盘填充孔。棋盘是微型的,因此很难避免灰尘……如您所见:

enter image description here

因此,角点检测是不可能的。我尝试使用 SciPy 的 binary_fill_holes 或类似方法,但我有全黑图像,我不明白。

最佳答案

这是一个函数,它用大多数相邻像素所具有的颜色替换每个像素的颜色。

import numpy as np
import cv2

def remove_noise(gray, num):
Y, X = gray.shape
nearest_neigbours = [[
np.argmax(
np.bincount(
gray[max(i - num, 0):min(i + num, Y), max(j - num, 0):min(j + num, X)].ravel()))
for j in range(X)] for i in range(Y)]
result = np.array(nearest_neigbours, dtype=np.uint8)
cv2.imwrite('result2.jpg', result)
return result

演示:

img = cv2.imread('mCOFl.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

remove_noise(gray, 10)

输入图片:

enter image description here

输出:

enter image description here

注意:由于该函数也替换角像素的颜色,您可以调用cv2.goodFeaturesToTrack函数来找到角并限制该像素的去噪

corners = cv2.goodFeaturesToTrack(gray, 100, 0.01, 30)
corners = np.squeeze(np.int0(corners))

关于python - 使用 OpenCV 或 Skimage 填充图像中的孔洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39677462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com