import cv2
import numpy as np
import math
import sys
import matplotlib.pyplot as plt
import utils as ut
imgGray = cv2.imread(imgfile, cv2.IMREAD_GRAYSCALE)
plt.imshow(imgGray, cmap = 'gray')
plt.show()
cv2.imshow("",imgGray)
cv2.waitKey(0)
cv2.destroyAllWindows()
sys.exit()
plt.show()结果
cv2.imshow()结果
我以为它们都是一样的。但正如你所看到的,两张图片的灰度不同。 看起来 plt.show() 比 cv2.imshow() 更黑
如何使 plt.show() 中的灰度与 cv2.imshow() 相同?
Python:3.9.6
opencv-python:4.5.3.56
mathplotlib:3.4.3
这是
matplotlib
的行为。它会找到图片的最小值和最大值,将其设为黑白,并缩放其间的所有内容。
这对于可能具有整数或浮点类型且值范围在 0.0 和 1.0 之间、或 0 .. 255 或其他任何值之间的任意数据很有用。
OpenCV 没有这样的自动缩放功能。它有固定的规则。如果是浮点数,0.0 是黑色,1.0 是白色。如果是 uint8,范围是 0 .. 255.