我在MacOS上使用OpenCV 3,我试图获取图像中像素的RGB值。无法获得正确的像素彩色图像python
例如,我使用以下图像:
我做,其检测所述图像中的用户的点击和使用x,y坐标输出RGB颜色的程序的点击,但显然当我点击圈子的某些区域时,我得到的值不正确。例如:当我点击蓝色圆圈内部时,让我们说图像的点(177,340),它会输出值(255,255,255),这肯定是不正确的。
但是,当我点击右边或左边的位时,它会输出正确的值:(17,51,225)。发生这种情况的整体形象,
我怀疑这是一件关系到规模,然后我就开了蟒蛇的图像,并使用下面的代码获得了像素值:
import cv2
import numpy as np
img = cv2.imread('circles.jpg', 1)
print(img[177,340])
但仍然,我得到的是这样的:
array([255, 255, 255], dtype=uint8)
我怀疑这是与坐标系有关的东西,我不知道。有人能帮我一下吗?
在此先感谢。
请注意X在OpenCV上从左开始,Y从上开始。 – Divakar
您正在访问RGB值为img [row,col],行从上到下,col从左到右。然而,当你注册一个鼠标点击图像时,它是一个(x,y)点,x从左到右,y从上到下。交换行和列,或者x和y,应该修正事情。 – Headcrab
如果您在应用程序中实际使用的是固体图形(与真实照片相反),请确定考虑使用PNG或GIF格式,而不是JPEG格式,因为这会导致各种各样的问题。 –