基于像素颜色的坐标位置

Pjr*_*yan 5 python opencv colors coordinates

我正在尝试获取图像中的特定坐标。我在图像中的几个位置标记了一个红点来指定我想要获取的坐标。在 GIMP 中,我使用了我能找到的纯粹红色(HTML 符号ff000)。我的想法是,我将迭代图像,直到找到纯红色阴影,然后打印出坐标。我正在使用 python 和 opencv 来做到这一点,但我找不到任何好的教程(我能找到的最好的是这个,但它不是很清楚......至少对我来说)。这是我正在处理的图像的示例。在此输入图像描述 我只想知道如何找到带有红点的像素的坐标。

编辑(添加代码):

import cv2
import numpy as np

img = cv2.imread('image.jpg')
width, height = img.shape[:2]
for i in range(0,width):
   for j in range(0,height):
      px = img[i,j]
Run Code Online (Sandbox Code Playgroud)

我不知道从这里该做什么。我尝试过诸如if px == [x,y,z]寻找颜色检测之类的代码,但这不起作用。

Mar*_*ark 1

您可以使用 PIL 和 numpy 来完成此操作。我确信 cv2 也有类似的实现。

from PIL import Image
import numpy as np

img = Image.open('image.png')

width, height = img.size[:2]
px = np.array(img)

for i in range(height):
   for j in range(width):
      if(px[i,j,0] == 255 & px[i,j,1] == 0 & px[i,j,2] == 0):
          print(i,j,px[i,j])
Run Code Online (Sandbox Code Playgroud)

这不适用于您提供的图像,因为没有任何像素完全是 (255,0,0)。当它被压缩为 .jpg 时,某些内容可能会发生变化,或者您没有将它们设置为像您想象的那样红色。也许您可以尝试关闭 GIMP 中的抗锯齿功能。