主頁 > 知識(shí)庫 > python使用matplotlib顯示圖像失真的解決方案

python使用matplotlib顯示圖像失真的解決方案

熱門標(biāo)簽:315電話機(jī)器人廣告 地圖標(biāo)注的意義點(diǎn) 房產(chǎn)電銷外呼系統(tǒng) 地圖制圖標(biāo)注位置改變是移位嗎 上海機(jī)器人外呼系統(tǒng)哪家好 浙江電銷卡外呼系統(tǒng)好用嗎 蓋州市地圖標(biāo)注 地圖標(biāo)注微信發(fā)送位置不顯示 南京銷售外呼系統(tǒng)軟件

在python顯示圖象時(shí),我們用matplotlib模塊時(shí)會(huì)遇到圖像色彩失真問題,究竟是什么原因呢,下面就來看看究竟。

待顯示圖像為:

import cv2
from matplotlib import pyplot as plt
img = cv2.imread('demo_2.jpg',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.show()

上面簡單的代碼運(yùn)行結(jié)果為:

我們發(fā)現(xiàn)這個(gè)圖像雖然顯示出來了,但是與原圖像在顏色上的差距還是挺大的,本來一個(gè)白胖小子被顯示地陰陽怪氣的,這肯定不像話了。那么我們要怎么讓這個(gè)白胖小子用matplotlib模塊完美地顯示出來呢。

請看代碼:

import cv2
from matplotlib import pyplot as plt
img = cv2.imread('demo_2.jpg', cv2.IMREAD_ANYCOLOR)
b,g,r = cv2.split(img)
img2 = cv2.merge([r, g, b])
plt.subplot(121)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([])
plt.yticks([])
plt.subplot(122)
plt.imshow(img2, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([])
plt.yticks([])
plt.show()

上述代碼運(yùn)行結(jié)果如下:

我們通過代碼可以發(fā)現(xiàn),只要將通道按照bgr的順序組合,圖片就可以不失真地顯示出來了,這樣我們就明白了上述圖片失真地原因和解決失真的方法。

補(bǔ)充:python plot圖片失真的問題(避免type font 3字體的出現(xiàn))

使用python畫圖時(shí),開始直接使用png保存,沒想到圖片里會(huì)默認(rèn)使用type font 3的字體,導(dǎo)致圖片放入latex編譯后,圖片一放大就不清晰。

于是尋找了好多修改圖片設(shè)置的解決方法

即,加入以下三行:

# Switch to Type 1 Fonts. 
matplotlib.rcParams['ps.useafm'] = True
matplotlib.rcParams['pdf.use14corefonts'] = True
matplotlib.rcParams['text.usetex'] = True

但是我的問題還是沒解決…

以上的設(shè)置是需要的,只是我輸出的圖片以png形式保存導(dǎo)致。所以,最后,我另替換了畫圖的操作以及加了一些包,即,

import matplotlib
matplotlib.use('PDF')
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
plt.savefig('tmp.pdf', bbox_inches='tight') 

圖片以pdf輸出,最后輸出的圖片就不會(huì)有type 3 font的問題啦,也就是圖片不管放多大,都可以很清楚!

所以,使用python保存實(shí)驗(yàn)結(jié)果時(shí),優(yōu)選 PDF。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Python深度學(xué)習(xí)之圖像標(biāo)簽標(biāo)注軟件labelme詳解
  • Python深度學(xué)習(xí)之使用Albumentations對(duì)圖像做增強(qiáng)
  • Python深度學(xué)習(xí)albumentations數(shù)據(jù)增強(qiáng)庫

標(biāo)簽:臨汾 克拉瑪依 金華 雙鴨山 貴州 日照 赤峰 陽泉

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python使用matplotlib顯示圖像失真的解決方案》,本文關(guān)鍵詞  python,使用,matplotlib,顯示,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python使用matplotlib顯示圖像失真的解決方案》相關(guān)的同類信息!
  • 本頁收集關(guān)于python使用matplotlib顯示圖像失真的解決方案的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章