我可以搜索照片中的黑色像素并使用 python 找出它们在照片中的位置吗?

Can I search for black pixels in a photo and find out where they are in the photo using python?

我想在使用 pyautogui 拍摄的屏幕截图中搜索黑色像素,我想使用 python 找到这些像素的 x 和 y 位置,以便我可以将鼠标移动到黑色像素位置使用输入法。我尝试使用 imageio,但找不到可以执行我想要的操作的命令。我几个小时前问过这个问题,但它已关闭,所以我对其进行了必要的编辑。

我建议查看 ImageMagick 库。这是在 Python.

中处理图像的首选库

这是 Python/OpenCV/Numpy 中的一种方法,在隔离黑点的阈值图像上使用 np.argwhere。

  • 读取输入
  • 在黑色和反转上使用 inRange 的阈值
  • 使用np.argwhere定位蒙版中黑色像素的坐标
  • 打印结果

输入(4 个角附近有 4 个黑色簇):

import cv2
import numpy as np

# read input
img = cv2.imread("lena_black_spots.png")

low = (0,0,0)
high = (0,0,0)

mask = cv2.inRange(img, low, high)
mask = 255 - mask

# find black coordinates
coords = np.argwhere(mask==0)
for p in coords:
    pt = (p[0],p[1])
    print (pt)

# save output
cv2.imwrite('lena_black_spots_mask.png', mask)

cv2.imshow('img', img)
cv2.imshow('mask', mask)
cv2.waitKey(0)
cv2.destroyAllWindows()


掩码:

坐标:

(18, 218)
(18, 219)
(19, 218)
(19, 219)
(20, 218)
(20, 219)
(38, 21)
(38, 22)
(39, 21)
(39, 22)
(173, 244)
(173, 245)
(174, 244)
(174, 245)
(194, 23)
(194, 24)
(195, 23)
(195, 24)