美文网首页
Opencv,PIL图像读取,转换,保存,显示

Opencv,PIL图像读取,转换,保存,显示

作者: 赵小闹闹 | 来源:发表于2019-04-24 17:48 被阅读0次

1.普通RGB图像为三个通道,转换为灰度图为一个通道
2.Opencv

import cv2  
#打开图片并显示
img = cv2.imread("./cat.png") 
cv2.imshow("Image", img) 
cv2.waitKey (0)
#将彩色图像转成灰度图像,利用opencv自带的cvtColor可以将彩色图像转成灰度图像
gray_image = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
#查看图片通道格式
gray_image.shape
#img.shape 返回图像高(图像矩阵的行数)、宽(图像矩阵的列数)和通道数3个属性组成的元组,若图像是非彩色图,则只返回高和宽组成的元组。
#图像存储
cv2.imwrite('./new_img2.jpg',gray_image)

cv2.imread()会默认以彩色模式读取图片,这样黑白图片读取后也成了三通道,想以图片原始模式读取使用

img = cv2.imread("./cat.png",-1)

使用cv2.imshow()展示图片时,需要加上cv2.waitKey (0),否则会一跳而过。

cv2.imshow("Image", img) 
cv2.waitKey (0)

3.PIL

#1、显示图片
from PIL import Image
im = Image.open('lena.png')
im.show()
#2、将 PIL Image 图片转换为 numpy 数组
im_array = np.array(im)
#3、保存 PIL 图片
#直接调用 Image 类的 save 方法

from PIL import Image
I = Image.open('lena.png')
I.save('new_lena.png')
#5、RGB 转换为灰度图、二值化图
from PIL import Image
I = Image.open('lena.png')
I.show()
L = I.convert('L')   #转化为灰度图
L = I.convert('1')   #转化为二值化图
L.show()
#查看图片模式
lena=Image.open('lena.png')
lena.mode
#输出RGB为彩色图片,通道数为3,输出'L'者"1"为灰度及黑白图,通道数为1

1:1位像素,表示黑和白,但是存储的时候每个像素存储为8bit。
L:8位像素,表示黑和白
RGB:3x8位像素,为真彩色。

重要的一点时图像只要经过转换及存储后,其模式就不会变,只是读取时以不同的模式读会有差异,不用担心

相关文章

网友评论

      本文标题:Opencv,PIL图像读取,转换,保存,显示

      本文链接:https://www.haomeiwen.com/subject/svaggqtx.html