我在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格式,因爲這會導致各種各樣的問題。 –