簡體   English   中英

使用 matplotlib 繪制的圖像似乎與原始 JPEG 圖像具有不同的 colors

[英]image plotted using matplotlib seems to have different colors than original JPEG image

下面的屏幕截圖比較了使用左側的 matplotlib 和右側的 Mac 預覽繪制的相同圖像。

圖像的顏色比較

使用 matplotlib 繪制圖像的代碼也相當簡單。

import matplotlib.pyplot as plt
import argparse
import skimage

parser = argparse.ArgumentParser(description='Color check.')
parser.add_argument('--image', required=False,metavar="path or URL to image")
args = parser.parse_args()

image = skimage.io.imread(args.image)
plt.imshow(image)
plt.show()

如您所見,兩張圖片中的 colors 明顯不同。 為什么會發生這種情況,我應該相信哪一個是正確的顏色表示?

編輯:

我使用opencv的imshow繪制了圖像,看起來不錯。

cv2 imshow 情節

這是代碼:

import argparse
import cv2

windowName = "image"
cv2.namedWindow(windowName,cv2.WINDOW_NORMAL)
cv2.resizeWindow(windowName, 600,600)

parser = argparse.ArgumentParser(description='Color check.')
parser.add_argument('--image', required=False,metavar="path or URL to image")
args = parser.parse_args()

image = cv2.imread(args.image)
cv2.imshow(windowName, image)
cv2.waitKey(0)

分歧可能來自兩個程序使用的色彩空間不同。 雖然 Mac Preview 可以識別顏色空間,因此應該使用創建/標記圖像的正確顏色空間來顯示圖像,但 matplotlib 使用sRGB顏色空間。

我會說 Mac Preview 使用的顏色表示很可能是圖像創建者也使用的顏色表示,因此我會選擇它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM