openCV imread 기능을 사용하여 컬러 이미지를 가져 왔습니다.파이썬에서 이미지의 특정 RGB 값의 픽셀 인덱스를 얻는 방법은 무엇입니까?
im = cv2.imread('test.jpg')
[255, 255, 255]의 픽셀 값을 갖는 흰색 픽셀의 색인을 찾으려고합니다. 저는 사실 메신저가 3D 배열 인 것을 압니다. 하지만 이상한 것은 im [0,0]의 값이 [255, 255, 255]가 아니라 [255 255 255]입니다. 그리고 im [0,0,0]은 255입니다. 따라서 [255 255 255]는 목록이나 다른 것으로 보이지만 실제로는 [255, 255, 255]와 동일하지 않습니다.
>>> print im[0,0]
[255 255 255]
>>> print im[0,0,0]
255
그래서 제 질문은 다음과 같습니다
- [255 255 255]과 [255, 255, 255]의 차이점은 무엇입니까?
- 모든 픽셀의 색인을 어떻게 얻을 수 있습니까? 어떤 검색 알고리즘을 사용해야합니까?
C++에서는 흰색 픽셀의 마스크에'cv :: findNonZero'를 사용합니다 :'cv :: Mat1b mask; cv :: inRange (img, cv :: Scalar (255,255,255), cv :: Scalar (255,255,255), mask); std :: vector pts; cv :: findNonZero (마스크, pts);'. 파이썬 래퍼에서도 비슷한 것이 있어야한다. 또는 Numpy 시설을 사용하는 일부 shurtcut ... –
Miki