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() result
cv2.imshow() result
我以為這兩張照片會是一樣的。但正如你所看到的,兩張圖片有不同的灰度。 似乎plt.show()比cv2.imshow()更暗
。我怎樣才能使plt.show()的灰度與cv2.imshow()相同呢?
Python : 3.9.6
opencv-python : 4.5.3.56
mathplotlib : 3.4.3
uj5u.com熱心網友回復:
這就是matplotlib的行為。它找到你的圖片的最小和最大值,使之成為黑色和白色,并對兩者之間的一切進行縮放。
這對任意資料很有用,這些資料可能有整數或浮點型別,其值范圍在0.0和1.0之間,或0 ... 255,或其他任何東西。
OpenCV不做這樣的自動縮放。它有固定的規則。如果它是浮點,0.0是黑色,1.0是白色。如果它是uint8,范圍是0 ... 255。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/311690.html
標籤:


