c# image转换为bitmap_Python PIL.Image与numpy.array之间的相互转换

本文介绍了如何在C#中将Image对象转换为Bitmap,以及在Python中使用PIL库读取图像后,如何与numpy.array进行相互转换。主要涉及PIL.Image.open()打开图片后通过转换成numpy数组进行图像处理,如添加椒盐噪声,再将处理后的数组转回Image形式。
摘要由CSDN通过智能技术生成

前言

有时我们使用PIL库读入图像数据后需要查看图像数据的维度,比如shape,或者有时我们需要对图像数据进行numpy类型的处理,所以涉及到相互转化,这里简单记录一下。

方法

当使用PIL.Image.open()打开图片后,如果要使用img.shape函数,需要先将image形式转换成array数组。

import numpy as np
from PIL import Image
im  =  Image.open("test.png")  #读入图片数据
img =  numpy.array(im)  #转换为numpy

此时例如要处理加入椒盐噪声,这时使用numpy数组进行处理:

for k in range(n):
        i = int(numpy.random.random() * img.shape[1]);
        j = int(numpy.random.random() * img.shape[0]);
        if img.ndim == 2:
            img[j,i] = 255
        elif img.ndim == 3:
            img[j,i,0]= 255
            img[j,i,1]= 255
            img[j,i,2]= 255

最后将array转化为image形式

img = Image.fromarray(img.astype('uint8')).convert('RGB')

Reference:

图像处理之PIL.Image与numpy.array之间的相互转换_Python_欢迎光临啊噗不是阿婆主的酒馆-CSDN博客​blog.csdn.net
4009a77aa75a81912a6b43ac2d0fcd43.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值