目錄
1、畫灰度圖像
# encoding: utf-8
import cv2
import matplotlib.pyplot as plt
import numpy as np
def show_img(name="test",img=None):
plt.figure()
plt.imshow(img)
plt.title(name)
plt.show()
if __name__ == '__main__':
path = r"lena.jpg"
img = cv2.imread(path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret,binary = cv2.threshold(gray,127,255,0)
"""測試使用不同的cmap,畫彩色和灰度圖像"""
# 使用cmap,默認值顯示彩色圖像,不正確
plt.subplot(2,2,1),plt.imshow(img),plt.axis('off')#關閉座標軸
# 使用cmap='gray'顯示彩色圖像,不正確
plt.subplot(2,2,2),plt.imshow(img,cmap='gray'),plt.axis('off')#關閉座標軸
# 使用cmap,默認值顯示灰度圖像,不正確
plt.subplot(2,2,3),plt.imshow(gray),plt.axis('off')#關閉座標軸
# 使用cmap='gray',默認值顯示彩色圖像,正確
plt.subplot(2,2,4),plt.imshow(gray,'gray'),plt.axis('off')#關閉座標軸
plt.show()
2、畫彩色圖像
注意通道的順序
# encoding: utf-8
import cv2
import matplotlib.pyplot as plt
import numpy as np
def show_img(name="test",img=None):
plt.figure()
channel = img.shape
if channel == 3:
b, g, r = cv2.split(img)
img = cv2.merge([r, g, b])
plt.imshow(img)
plt.title(name)
plt.show()
if __name__ == '__main__':
path = r"lena.jpg"
img = cv2.imread(path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret,binary = cv2.threshold(gray,127,255,0)
b,g,r = cv2.split(img)
img2 = cv2.merge([r,g,b])
# 使用cmap,默認值顯示彩色圖像,不正確
plt.subplot(1,2,1),plt.imshow(img),plt.axis('off')#關閉座標軸
# 使用cmap='gray'顯示彩色圖像,不正確
plt.subplot(1,2,2),plt.imshow(img2),plt.axis('off')#關閉座標軸
plt.show()