无法获得正确的像素彩色图像python

时间:2017-05-29 03:34:01

标签: python image opencv numpy

我在MacOS上使用OpenCV 3,而我正试图获取图像中像素的RGB值。

例如,我使用的是以下图片:

enter image description here

我制作了一个程序,用于检测图像中用户的点击,并使用点击的x,y坐标输出RGB颜色,但显然当我点击圈子的某些区域时,我得到了一个不正确的价值。例如:当我在蓝色圆圈内单击时,让我们在图像的点(177,340)上说,它输出值(255,255,255),这肯定是不正确的。

但是当我向右或向左点击一下时,它会输出正确的值:(17,51,225)。这种情况发生在整个图像上,

我怀疑它是与比例相关的东西,然后我只是在python上打开图像并使用以下代码获得像素的值:

import cv2
import numpy as np

img = cv2.imread('circles.jpg', 1)
print(img[177,340])

但是,我得到的是:

array([255, 255, 255], dtype=uint8)

我怀疑它是与我不了解的坐标系相关的东西。有人可以帮个忙吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我将洋红色[177,340]中的点(255,0,255)绘制为您的图片,如下面的代码所示。

image[175:179,338:342] = (255,0,255) # enlarge a bit for easy viewing

在图像中清楚地显示该点位于白色背景中。

enter image description here

可能,您将(row,col)错误地编码为(col,row),以便获得颜色[17,51,225],这是图片中的“橙色和最大圆圈”,而不是[244,70,18]是“蓝色圆圈”。