Python plt顯示圖片
概述
對(duì)這篇博客內(nèi)容的最最簡(jiǎn)要的總結(jié),便于快速抓要點(diǎn)
# 顯示曲線
plt.plot(x,y)
# 顯示圖像
plt.imshow(image)
# 顯示曲線/圖片時(shí)需要的一行。本地可以顯示,服務(wù)器不太行
plt.show()
plt.savefig('xx.png') # 保存圖片 fig.savefig('xx.png') 功能相同
# 保存圖片在本地需要寫(xiě)明圖片完整目錄,服務(wù)器中默認(rèn)保存在當(dāng)前執(zhí)行目錄
一、繪制曲線并顯示 plt.plot
以下是一張圖中包含多張小圖 的三種不同寫(xiě)法的匯總和拆解。
匯總 ?
plt.subplot(221)
plt.plot(x, y)
fig,axes=plt.subplots(2,2)
ax1=axes[0,0]
ax1.plot(x, y)
fig = plt.figure(figsize=(6, 3)) # 指定畫(huà)圖的大小
ax = fig.add_subplot(1, 2, 1)
ax.plot(x, y)
寫(xiě)法一
plt.subplot(221)
plt.plot(x, x)
plt.show() / %matplotlib inline # %的寫(xiě)法只在Jupyter中生效,見(jiàn)文末附錄說(shuō)明
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(1, 101)
#作圖1
plt.subplot(221)
plt.plot(x, x)
#作圖2
plt.subplot(222)
plt.plot(x, -x)
#作圖3
plt.subplot(223)
plt.plot(x, x ** 2)
plt.grid(color='r', linestyle='--', linewidth=1, alpha=0.3)
#作圖4
plt.subplot(224)
plt.plot(x, np.log(x))
plt.show() # 刪除本行,增加%matplotlib inline 也可以顯示出圖像
寫(xiě)法二
fig,axes=plt.subplots(2,2)
ax1=axes[0,0]
ax1.plot(x, x)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(1, 101)
#劃分子圖
fig,axes=plt.subplots(2,2)
ax1=axes[0,0]
ax2=axes[0,1]
ax3=axes[1,0]
ax4=axes[1,1]
#作圖1
ax1.plot(x, -x)
#作圖2
ax2.plot(x, x)
#作圖3
ax3.plot(x, x ** 2)
ax3.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)
#作圖4
ax4.plot(x, np.log(x))
plt.show()
寫(xiě)法三
fig = plt.figure(figsize=(6, 3)) # 指定畫(huà)圖的大小
ax = fig.add_subplot(1, 2, 1)
ax.plot(x, y)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
# %matplotlib inline
fig = plt.figure(figsize=(6, 3))
ax = fig.add_subplot(1, 2, 1)
x = np.linspace(-5, 5, 100)
y = x**2
ax.plot(x, y, 'r-')
ax = fig.add_subplot(1, 2, 2)
x = np.linspace(-5, 5, 100)
y = x**3
ax.plot(x, y, 'r-')
plt.show()
二、打開(kāi)圖片并顯示 plt.imshow
已知的讀取圖片方式有兩種:cv2、Image,初略講解如下,有需要更多講解的再單獨(dú)整合。
寫(xiě)法一 cv2
參考資料
opencv 因?yàn)闅v史原因, 讀入的圖片的格式是BGR;matplotlib的圖片格式默認(rèn)是RGB格式的。所以,當(dāng)用cv2讀入圖片然后用matplotlib顯示的時(shí)候,R通道變成了B通道, B通道變成了R通道, 所以顯示會(huì)很陰間。如果想要正確顯示圖像,就需要使用cvtColor進(jìn)行顏色空間的轉(zhuǎn)換,從BGR轉(zhuǎn)換為RGB。
關(guān)鍵代碼
image = cv2.imread(image_path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
fig, ax = plt.subplots(1,2)
ax[0].imshow(image)
cv2.imwrite("1.jpg",image) # 保存圖片
舉例
import cv2
import matplotlib.pyplot as plt
image_path = r"C:\\Users\\shmily\\Desktop\\file1.jpg"
image = cv2.imread(image_path)
h, w, _ = image.shape
image_size = 448
img = cv2.resize(image, dsize=(image_size, image_size), interpolation=cv2.INTER_LINEAR)
h1, w1, _ = img.shape
print(h,w,h1,w1)
fig, ax = plt.subplots(1,2)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # 改變顯示的顏色
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
ax[0].imshow(image) # ,cmp='gray')
ax[1].imshow(img)
plt.show()
不進(jìn)行 cv2.cvtColor 的結(jié)果
進(jìn)行了顏色轉(zhuǎn)變的結(jié)果
寫(xiě)法二 Image
關(guān)鍵代碼
img = np.array(Image.open(img_path))
plt.figure()
plt.imshow(img)
舉例
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
img_path = r"C:\\Users\\shmily\\Desktop\\file1.jpg"
img = np.array(Image.open(img_path))
plt.figure()
plt.imshow(img)
plt.show()
附錄
1、%matplotlib inline 說(shuō)明
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-820468.html
2、隨手補(bǔ)充內(nèi)容
隱藏坐標(biāo)系文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-820468.html
plt.axis('off')
到了這里,關(guān)于(P4)Python plt顯示和保存圖像(cv2、Image)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!