怎么用python进行简单的图像处理

Python019

怎么用python进行简单的图像处理,第1张

所谓简单的图像处理,就是对像素数据进行点处理。

下面是具体步骤。

读取图片

# -*- coding: utf-8 -*-

import cv2

import numpy as np

img = cv2.imread("C:/Users/Administrator/Desktop/ball.png")

cv2.imshow("a",img)

cv2.waitKey(0)

cv2.imshow("a",img)

打开一个图片窗口。

python读取图片,实际上是读取了离散的图片数据:

print(img)

运行,就会给出图片数据。

显示反色图片,只要进行简单的计算:

255-img

这是2*img的效果。

分离通道,图片的第一个通道是:

img[:,:,0]

成图是灰度图。

第二个通道的灰度图:

img[:,:,1]

第三个通道的灰度图:

img[:,:,2]

创建一个简单的图像与图像混合

1.1 在Image模块中,提供了创建图像的方法。主要是通过**Image.new(mode, size, color)**实现,该方法传入三个参数:

mode:图像的创建模式

size:图像的大小

color:图像的颜色

用该方法可以创建一个简单的图像,之后我们可以通过save方法将图像保存:

1.2生成图片如下

1.3 图像混合

透明度混合

透明度混合主要是使用**Image中的blend(im1, im2, alpha)**方法,对该方法的解释如下:

im1:Image对象,在混合的过程中,透明度设置为(1-apha)

im2:Image对象,在混合的过程中,透明度设置为(apha)

alpha:透明度,取值是0-1。当透明度为0是,显示im1对象;当透明度为1时,显示im2对象

代码实现如下

1.4原图和混合图的对比

1.5 遮罩混合

通过Image.composite(im1, im2, mask)方法实现遮罩混合。三个参数都是Image对象,该方法的作用就是使用mask来混合im1和im2。

1.6im1、im2和遮罩混合效果对比如下

生成一张纯色的图片

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

批量生成图片

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

本地生成的图片

封装成函数

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

本地生成的图片