资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

python里读图像函数 python读取图像数据

python处理图片数据?

生成一张纯色的图片

创新互联公司主要从事网站设计制作、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务古塔,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

先设置图片的颜色,接着利用Image模块的new方法新生成一张图片,png格式的图片需要设置成rgba,类似的还有rgb,L(灰度图等),尺寸设定为640,480,这个可以根据自己的情况设定,颜色同样如此。

批量生成图片

上面生成了一张图片,那要生成十张图片呢,这种步骤一样,只是颜色改变的,利用循环就可以解决。首先创建一个颜色列表,把要生成的图片颜色放进去。接着循环获取不同的颜色,保存的时候利用字符串拼接的方法改变图片的名字。

本地生成的图片

封装成函数

前面的方法已经可以批量生成图片了,为了通用性强一点,我们可以封装成函数,把哪些可以改变的参数单独抽离出来。尺寸也同样,使用的时候,可以根据自己的需要定义颜色列表和尺寸。当然还有加一些提示用语和报错兼容性,这里就不讲了。

本地生成的图片

如何采用Python读取一个图像

打开winPython工具包

输入以下代码,如图所示。

from skimage import io

if __name__ == '__main__':

img_name="D:\\WinPython-64bit-3.5.3.0Qt5\\notebooks\\hashiqi.jpg"

print("我的图片!")

img=io.imread(img_name,as_grey=False)

io.imshow(img)

其中变量img_name是为了指定自己图片所存的路径。

单击保存按钮,

会跳出一个设置文件名的界面,填入要保存的名字即可。

单击运行按钮,一般要单击两次才行,运行代码。

单击后,就可以查看的我们显示的图片了。

python有没有将图像变成函数的方法

当然有,这就是Python函数图像工具(EXE)。 本程序运用Python中最令人喜爱的数据处理工具numpy和超强的图像库matplotlib,实现13种不同类别函数的分类图像整理,展示图像均可以保存为图片的形式,具备拖动、放大等功能

读取图片

python基础——读取图片

图像后缀名的转换:

要注意的是:对于彩色图像,不管其格式是png,还是bmp,或者jpg,

在PIL中 ,使用Image模块的open()函数打开后,返回的图像对象的模式都是 RGB ,对于灰度图像,不管其图像格式是PNG,还是BMP,JPG,打开后,其模式为灰度L。

PNG BMP JPG彩色图像格式之间的转换:可以通过Image模块的open函数和save函数,具体来说,在打开这些图像时,PIL会将他们解码成三通道的RGB图像。用户可以基于RGB进行处理。处理完毕后可以将其处理结果保存成PNG BMP JPG中任何格式。

PNG BMP JPG灰度图像格式之间的转换,同理也可以通过类似途径,只是解码后时模式为L的图像。

python库可以用来读取图片的库

1. PIL.Image.open  

无论是jpg还是png都能准确读取,PIL.Image.open 不直接返回numpy对象,可以用numpy提供的函数进行转换;

其他模块都直接返回numpy.ndarray对象,通道顺序为RGB,通道值得默认范围为0-255。

拓展:

利用PIL中的Image函数读取出来不是array格式,这时候需要用np.asarray() 或者np.array()函数 。

区别:np.array() 是深拷贝,np.asarray() 是浅拷贝

关于深拷贝和浅拷贝,这里给出一个说明:

Python 中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。

1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。

2. copy.deepcopy 深拷贝 拷贝对象及其子对象

一个很好的例子:

2. cv2.imread

使用opencv读取图像,直接返回numpy.ndarray 对象,通道顺序为BGR ,注意是BGR,通道值默认范围0-255

cv2.imread():读入图片,共两个参数:第一个参数为要读入的图片文件名,第二个参数为如何读取图片(cv2.IMREAD_COLOR:读入一副彩色图片;cv2.IMREAD_GRAYSCALE:灰度图片;cv2.IMREAD_UNCHANGED:读入一幅图片,并包括其alpha通道。)

cv2.imread()不能有中文路径,否则读取不出来

cv2.imread() 读出来同样是array形式,但是如果是单通道的图,读出来的是三通道的。

3. matplotlib.image.imread

用于显示图片matplotlib 用于读取图片并且读取出来就是array格式

解决使用plt.savefig 保存图片时一片空白 : 在plt.show() 之前调用 plt.savefig();

4. scipy.ndimage.imread

scipy.ndimage.imread(*args, **kwds)   Use ``matplotlib.pyplot.imread`` instead.

Returns:imread:ndarray(多维数组)

5. scipy.misc.imread

scipy.misc.imread(name, flatten=False, mode=None)

Use ``imageio.imread`` instead.

返回:imread: ndarray。通过读取图像获得的阵列 。读出来是array 形式,并且按照(H,W,C)形式保存

4. skimage.io.imread

scikit-image和numpy,matplotlib,scikit-learn等包都是Scipy项目的成员,通用numpy数组作为基本数据格式。在python中载入包名为skimage:所得即为numpy数组。

io.imread读出图片格式是uint8(unsigned int);value是numpy array;图像数据是以RGB的格式进行存储的,通道值默认范围0-255。


当前文章:python里读图像函数 python读取图像数据
本文地址:http://www.cdkjz.cn/article/doeoggj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220