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()结果
x1c 0d1x的数据
cv2.imshow()结果
的
我原以为这两张图片是一样的。但是正如你所看到的,两张图片有不同的灰度。看起来plt.show()比cv2.imshow()暗
如何使plt.show()中的灰度与cv2.imshow()中的灰度相同?
Python:3.9.6
opencv-python:4.5.3.56
mathplotlib:3.4.3
1条答案
按热度按时间uemypmqf1#
这是
matplotlib
的行为。它找到你的图片的最小值和最大值,使那些黑色和白色,并缩放之间的一切。这对任意数据都很有用,这些数据可能是整数或浮点类型,值范围在0.0和1.0之间,或0..255之间,或其他任何值。
带
vmin
和vmax
参数的You can set those limits yourself:字符串
OpenCV没有这样的自动缩放。它有固定的规则。如果它是浮点数,0.0是黑色,1.0是白色。如果它是uint 8,范围是0.. 255。
要在OpenCV中获得这种自动范围,您必须在显示之前缩放数据:
型