當使用各自的imshow功能顯示影像時,OpenCV 和 matplotlib 有時會給出相同的輸出,有時會給出不同的輸出。它們之間有什么區別?
例如,它為此代碼提供相同的輸出:
img = cv2.imread("sudoku.jpg")
plt.figure()
plt.imshow(img, cmap="gray")
plt.axis("off")
plt.title("orjinal")
plt.show()
cv2.imshow("orjinal",img)
matplotlib:
OpenCV:

它為此代碼提供了不同的輸出:
laplacian = cv2.Laplacian(img,ddepth=cv2.CV_16S)
plt.figure()
plt.imshow(laplacian, cmap="gray")
plt.axis("off")
plt.title("laplacian")
plt.show()
cv2.imshow("laplacian",laplacian)
matplotlib:
OpenCV:

uj5u.com熱心網友回復:
主要區別以及導致您顯示的區別的一個區別是,matplotlib 默認情況下會縮放影像,使其最小值為黑色,最大值為白色。OpenCV 總是根據資料型別顯示影像,例如對于 uint8 影像,0 是黑色,255 是白色。在您的情況下,您有一個簽名的 16 位影像,其中 -32768 為黑色,32767 為白色。您的像素值占據的范圍更小,因此都顯示為相同的中灰色。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/447029.html
標籤:opencv matplotlib 图像处理
