【问题标题】:How to identify nearby pixels with similar intensities in image?如何识别图像中具有相似强度的附近像素?
【发布时间】:2020-06-19 14:07:57
【问题描述】:
我有一个如下所示的图像,并且我已经为该图像创建了蒙版(红点是从蒙版生成的)。理想情况下,蒙版中的点应覆盖图像上的整个黑点,但由于每个黑块只有一个坐标,因此生成的图像如下所示。
如何识别周围的像素(灰色和浅黑色)并同时标记它们?有什么方法或方法我可以查找和实现。
【问题讨论】:
标签:
python
image
image-processing
graphics
deep-learning
【解决方案1】:
如果我对您的理解正确,您希望将所有周围的灰色和深色像素转换为红色。如果是这样,这是使用OpenCV 的方法。思路是加载图像,转换为grayscale,然后Otsu's threshold,得到1通道二值图像。这将为我们提供一个蒙版,我们可以在其中使用np.where 将蒙版上有白色像素的像素着色为红色。结果如下:
二进制掩码
结果
import cv2
import numpy as np
# Load image, grayscale, Otsu's threshold
image = cv2.imread('1.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 200, 255, cv2.THRESH_BINARY_INV)[1]
# Color pixels red where there are white pixels on the mask
image[np.where(thresh==255)] = [0,0,255]
# Display
cv2.imshow('thresh', thresh)
cv2.imshow('image', image)
cv2.waitKey()