我可以搜索照片中的黑色像素并使用 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)
我想在使用 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)