提取彩色图像中的灰度图像
文章目录
由于图像处理中的诸多技术如卷积、傅立叶变换、特征值分解等操作均是针对灰度图像,所以如何将彩色图像转化为灰度图像是常用的基本操作。在python中使用不同的库进行此操作的方式也不相同,本部分内容旨在整理出常用的图像处理库中的此类操作。
1. 利用scikit-image将彩色图像转化成灰度图像
from skimage.io import imread
from skimage.color import rgb2gray
import matplotlib.pylab as plt
im = imread("images/parrot.png")
im_g = rgb2gray(im)
#print(im.shape)
plt.figure(figsize=(10,10))
plt.subplot(121)
plt.imshow(im, cmap='gray')
plt.axis('off')
plt.subplot(122)
plt.imshow(im_g, cmap='gray')
plt.axis('off')
plt.show()
2. 利用 Pillow 库完成彩色图像中灰度图像的逐层提取
from PIL import Image
import matplotlib.pyplot as plt
image = Image.open('images/parrot.png') #open image
r, g, b = image.split()
plt.figure(figsize=(10,8))
plt.subplot(2,2,1), plt.imshow(image),plt.axis('off'),plt.title('Origin')
plt.subplot(2,2,2), plt.imshow(r,cmap='gray'),plt.axis('off'),plt.title('R Channel')
plt.subplot(2,2,3), plt.imshow(g,cmap='gray'),plt.axis('off'),plt.title('G Channel')
plt.subplot(2,2,4), plt.imshow(b,cmap='gray'),plt.axis('off'),plt.title('B Channel')
plt.show()
3. 利用 Pillow 库完成彩色图像到灰度图像的转变
from PIL import Image
import matplotlib.pyplot as plt
image = Image.open('images/parrot.png') #open image
imgage_g = image.convert('L')
plt.figure(figsize=(10,8))
plt.subplot(1,2,1), plt.imshow(image),plt.axis('off'),plt.title('Origin')
plt.subplot(1,2,2), plt.imshow(r,cmap='gray'),plt.axis('off'),plt.title('gray image')
plt.show()
4. 利用 matplotlib 库将彩色图像转化为灰度图像
import matplotlib.pylab as plt
import matplotlib.image as mpimg
im = mpimg.imread("images/parrot.png")
im_g = im[:,:,0]
plt.figure(figsize=(10,8))
plt.subplot(1,2,1), plt.imshow(im),plt.axis('off'),plt.title('Origin')
plt.subplot(1,2,2), plt.imshow(im_g,cmap='gray'),plt.axis('off'),plt.title('gray image')
plt.show()