目前我正在尝试获取图片的平均颜色值。我只是尝试将整个图像调整为1x1像素img2= cv2.resize(img00, (1,1))
并获取rgb值
for i in xrange(0,3):
rgb[i] = img2[0][0][i]
cv2.rectangle(img,(0,0),(100,100),(int(rgb[0]),int(rgb[1]),int(rgb[2])),-1)
,但结果是错误的。它只显示了像OPENCV这样的右侧颜色会向一个角插入。("结果1x1" -Image显示调整大小后像素的rgb值)同样我尝试用gimp调整相同的img大小,它也只是插值图片,结果显示正确的平均像素。我真的不知道为什么OPENCV会产生不同的结果,但我真的需要解决这个问题。有任何想法吗?感谢您的帮助:3 test image for resizing& Result 1x1
答案 0 :(得分:0)
您必须使用正确的工具/功能来解决您的问题。在这种情况下,对于OpenCV 2 cv.Avg(...)
和OpenCV 3 cv2.mean(...)
。
另外,请注意OpenCV的默认值是bgr而不是rgb,虽然我认为这没有影响,因为它只是变量的名称。
关于你的代码,虽然我不推荐,但如果你使用插值方法INTER_AREA
,它可能会有效。