python使用matplotlib顯示圖像失真的解決方案
在python顯示圖象時,我們用matplotlib模塊時會遇到圖像色彩失真問題,究竟是什么原因呢,下面就來看看究竟。
待顯示圖像為:

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()
上面簡單的代碼運行結(jié)果為:

我們發(fā)現(xiàn)這個圖像雖然顯示出來了,但是與原圖像在顏色上的差距還是挺大的,本來一個白胖小子被顯示地陰陽怪氣的,這肯定不像話了。那么我們要怎么讓這個白胖小子用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()
上述代碼運行結(jié)果如下:

我們通過代碼可以發(fā)現(xiàn),只要將通道按照bgr的順序組合,圖片就可以不失真地顯示出來了,這樣我們就明白了上述圖片失真地原因和解決失真的方法。
補充:python plot圖片失真的問題(避免type font 3字體的出現(xiàn))
使用python畫圖時,開始直接使用png保存,沒想到圖片里會默認(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輸出,最后輸出的圖片就不會有type 3 font的問題啦,也就是圖片不管放多大,都可以很清楚!
所以,使用python保存實驗結(jié)果時,優(yōu)選 PDF。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Python基于socket實現(xiàn)簡單的即時通訊功能示例
這篇文章主要介紹了Python基于socket實現(xiàn)簡單的即時通訊功能,涉及Python基于socket模塊實現(xiàn)tcp通信客戶端與服務(wù)器端相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
Python?"手繪風(fēng)格"數(shù)據(jù)可視化方法實例匯總
這篇文章主要給大家介紹了關(guān)于Python?"手繪風(fēng)格"數(shù)據(jù)可視化方法實現(xiàn)的相關(guān)資料,本文分別給大家?guī)砹薖ython-matplotlib手繪風(fēng)格圖表繪制、Python-cutecharts手繪風(fēng)格圖表繪制以及Python-py-roughviz手繪風(fēng)格圖表繪制,需要的朋友可以參考下2022-02-02
Python+tkinter實現(xiàn)網(wǎng)站下載工具
這篇文章主要為大家詳細介紹了如何利用Python+tkinter實現(xiàn)網(wǎng)站下載工具,實現(xiàn)所有數(shù)據(jù)一鍵獲取,文中的示例代碼講解詳細,感興趣的可以了解一下2023-03-03
解決python3在anaconda下安裝caffe失敗的問題
下面小編就為大家?guī)硪黄鉀Qpython3在anaconda下安裝caffe失敗的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06

