gpt4 book ai didi

python - Python Open CV canny正在检测除边缘以外的所有内容

转载 作者:行者123 更新时间:2023-12-02 17:04:03 24 4
gpt4 key购买 nike

Canny正在检测除道路以外的所有地方的边缘。
这是原始图像。
https://imgur.com/a/O4ZVvb6

这是一个示例图像。
https://imgur.com/a/AqENNbq

我已经尝试过使用Canny阈值。
并应用高斯模糊,中值模糊,bilateralFilter,

我也尝试过先使用黑白图像阈值拟合器,但是问题是地形会稍微改变颜色并导致问题。

import numpy as np
from PIL import ImageGrab
import cv2
import time

def screen_record():
last_time = time.time()
while(True):

# record upper left corner of screen to get the image.
printscreen = np.array(ImageGrab.grab(bbox=(0,40,1098,728)))
print('loop took {} seconds'.format(time.time()-last_time))
last_time = time.time()
color = cv2.cvtColor(printscreen, cv2.COLOR_BGR2GRAY)
canny = cv2.Canny(color, 20, 100)
cv2.imshow('edges',canny)

if cv2.waitKey(25) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break

screen_record()

我希望只有一条实线。
像下面的图像。
https://imgur.com/a/09vTE9e

最佳答案

您可以同时使用打开和关闭操作来过滤canny中的嘈杂边缘。代码如下。

import numpy as np
import cv2
import matplotlib.pyplot as plt

img = cv2.imread('vLnzxEs.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
canny = cv2.Canny(gray, 20, 100)

# visualize the canny image
plt.figure
plt.imshow(canny, cmap='gray')

#decleare kernel for closing and opening operations
kernel = np.ones((75,75),np.uint8)
# apply closing and opening
closing = cv2.morphologyEx(canny, cv2.MORPH_CLOSE, kernel)
opening = cv2.morphologyEx(closing, cv2.MORPH_OPEN, kernel)

# visualize the opening
plt.figure
plt.imshow(opening, cmap='gray')

输出看起来像

that

关于python - Python Open CV canny正在检测除边缘以外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57636662/

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