【问题标题】:python edge detector - mask the area were it's completly blackpython边缘检测 - 掩盖它完全黑色的区域
【发布时间】:2016-12-10 08:26:51
【问题描述】:

我在图像上使用了精巧的边缘检测器。 它检测到图像中的某些区域,而其他区域则没有显示任何内容。 现在,我希望在原始图像上它会掩盖完全黑色的区域。 我该怎么做?

我正在使用 python 和 skimage 或 opencv(无所谓)

from skimage.feature import canny
from skimage.morphology import closing
import skimage.io
import numpy as np
import os
import matplotlib.pyplot as plt
import cv2

img = skimage.io.imread("test.jpg",as_grey=True)
fig, ax = plt.subplots(1, 1, figsize=(20,20))
ax.imshow(img,'gray')
ax.set_axis_off()
plt.show()

edges = canny(img)

close = closing(edges)

fig, ax = plt.subplots(1, 1, figsize=(20,20))
ax.imshow(close,'gray')
ax.set_axis_off()
plt.show()

现在我想要的是白色部分(在第二张图像中)将是唯一会在原始图像中显示的部分(遮罩)

【问题讨论】:

  • 附加示例输入和当前输出以使您的问题更清晰。
  • 我编辑了。应该是一个简单的掩蔽问题
  • 您对使用 opencv 感到满意吗?
  • 是的,opencv 很好

标签: python opencv image-processing scikit-image


【解决方案1】:

您可以使用以下方法在 RGB 图像上简单地应用二进制掩码:

close_BGR = cv2.cvtColor(close, cv2.COLOR_GRAY2BGR)
# Assuming that the img is of RGB format
masked_image = cv2.min(close_BGR, img)

【讨论】:

    猜你喜欢
    • 2016-11-30
    • 2018-12-09
    • 2018-10-05
    • 2021-03-01
    • 2018-06-06
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多