目前,我正在尝试获取图像的平均颜色值。我只是试图将整个图像调整为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”-图像显示了调整大小后像素的rgb值)同样,我尝试使用gimp调整相同img的大小,这也只是插值图片和结果显示正确的平均像素。我真的不知道为什么OPENCV会产生不同的结果,但是我确实需要解决这个问题。有任何想法吗?感谢您的帮助:3 test image for resizing和Result 1x1
最佳答案
您必须使用正确的工具/功能来解决问题。在这种情况下,对于OpenCV 2 cv.Avg(...)
和对于OpenCV 3 cv2.mean(...)
。
另外,请记住,OpenCV的默认值是bgr而不是rgb,尽管我希望这没有影响,因为它只是变量的名称。
关于您的代码,尽管我不建议这样做,但是如果您将其用作插值方法 INTER_AREA
,则可以使用。
关于python - OPENCV调整大小以获取图像平均值-与gimp不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37304541/