image图片读取

文章探讨了在Python中使用PIL库的Image.open方法和OpenCV的cv2.imread函数进行图片读取的差异,以及如何在两者之间转换。还介绍了图像的灰度化处理,如何创建新图像,并展示了如何进行图像的透明度混合操作。
转变:
1、Image.open   》》  cv2.imread
img = Image.open(path)
re_img = np.asarray(img)

2、cv2.imread  》》  Image.open
Image.fromarray(np.uint8(re_img))

1、图片读取

1-1、Image.open

# content为byte类型,有两种方式
img = Image.open(pic_path)
img = Image.open(BytesIO(content))
print(type(img))
print(img)
# 展示
img.show()
'''
<class 'PIL.JpegImagePlugin.JpegImageFile'>
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=100x30 at 0x269ACC79430>
'''
1-2、cv2.imread
tp_img = cv2.imread('bb.png')
print(type(tp_img))
print(tp_img)

'''
<class 'numpy.ndarray'>
[[[106 122  88]
  [  0  15   0]
  [100 131  94]
  ...
  [106 126  91]
  [106 126  91]
  [106 126  91]]
'''

2、灰度化

3、创建一个图像

'''
mode(模式)	bands(通道)	说明
“1”				1			数字1,表示黑白二值图片,每个像素用0或1共1位二进制码表示
“L”				1			灰度图
“P”				1			索引图
“RGB”			3			24位真彩图
“RGBA”			4			“RGB”+透明通道
“CMYK”			4			印刷模式图像
'''

im = Image.new('RGB', (100, 100), 'green')
# 保存这个图像
# im.save('red.png')
im.show("CMYK")

4、图像混合

4-1、透明度混合

from PIL import Image

# 打开im1
im1 = Image.open('pic.jpg').convert(mode='RGB')
# 创建一个和im1大小一样的图像
im2 = Image.new('RGB', im1.size, 'red')
# 混合图片,并显示,0.5[取值为0-1]为透明度
Image.blend(im1, im2, 0.5).show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值