简体   繁体   中英

coordinate location based off pixel color

I am trying to get specific coordinates in an image. I have marked a red dot in the image at several locations to specify the coordinates I want to get. In GIMP I used the purist red I could find (HTML notation ff000 ). The idea was that I would iterate through the image until I found a pure shade of red and then print out the coordinates. I am using python and opencv to do so but I can't find any good tutorials (best I could find is this but it's not very clear...at least for me). Here is an example of the image I am dealing with. 在此处输入图片说明 I just want to know how to find the coordinates of the pixels with the red dots.

EDIT (added code):

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]

I don't know what to do from here. I have tried code such as if px == [x,y,z] looking for color detection but that doesn't work.

You can do it with cv2 this way:

image = cv2.imread('image.jpg')
lower_red = np.array([0,0,220])  # BGR-code of your lowest red
upper_red = np.array([10,10,255])   # BGR-code of your highest red 
mask = cv2.inRange(image, lower_red, upper_red)  
#get all non zero values
coord=cv2.findNonZero(mask)

You can do this with PIL and numpy. I'm sure there is a similar implementation with 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])

This doesn't work with the image you provided, since there aren't any pixels that are exactly (255,0,0). Something may have changed when it got compressed to a .jpg, or you didn't make them as red as you thought you did. Perhaps you could try turning off anti-aliasing in GIMP.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM