【问题标题】:How to obtain long edge between black and white thresholds?如何获得黑白阈值之间的长边?
【发布时间】:2021-06-12 22:40:29
【问题描述】:

使用 OpenCv 我将绿色区域转换为白色 (255) 和黑色 (0):请参阅电流输出。

使用 Canny、Laplacian 和 Sobel 边缘检测产生许多小边缘,而不是长的一致边缘,请参阅 CANNY EDGE 示例。

我怎样才能获得所需输出中的一条长边?

相关代码:

image = cv.imread('grass pic.jpg')
lane_image = np.copy(image)
pic = cv.cvtColor(lane_image ,cv.COLOR_BGR2RGB)

lower = np.array([24,0,0])
upper = np.array([177, 194, 20])

green_selection = cv.inRange(pic, lower, upper)
canny= cv.Canny(green_selection,50,150)

plt.imshow(canny, cmap='gray')

当前输出:

康力边缘示例

期望的输出:

【问题讨论】:

    标签: opencv computer-vision edge-detection canny-operator sobel


    【解决方案1】:

    将图像转换为 HSV 颜色空间可能会帮助您检测所需的线条。

    import cv2
    import numpy as np
    
    image = cv2.imread("image.png")
    HSV = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
    
    low = np.array([23, 98, 0])
    high = np.array([253, 255, 255])
    
    mask = cv2.inRange(HSV, low, high)
    cv2.imshow("mask", mask)
    cv2.imwrite("mask.png", mask)
    
    result = cv2.bitwise_and(image, image, mask=mask)
    cv2.imshow("result", result)
    cv2.imwrite("result.png", result)
    
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
    Mask Image Result Image

    【讨论】:

      猜你喜欢
      • 2013-04-26
      • 2014-05-09
      • 2023-03-14
      • 2019-11-02
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多