Pythoncv2.imread()函数读取图像,1表示以全彩色读取,然后使用**cv2.cvtColor()**方法将该图像转换为灰度。
如何在Python中过滤图像
过滤图像像素意味着你可以将图像从彩色转换成灰度,或者给图像增加一个额外的层。要将彩色图像转换为灰度图像,请使用**cv2.cvtColor()**方法。然后我们可以使用cv2.imwrite()函数将图像写到磁盘上。
# app.py
import numpy as np
import cv2
img = cv2.imread('data.png', 1)
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
Python cv2:如何在图像中添加一个新的通道
要添加一个新的透明通道,首先要把原始图像分成三个通道,然后使用cv2.merge()函数,并把第四个通道作为第四个参数传递。
# app.py
import numpy as np
import cv2
img = cv2.imread('data.png', 1)
b = img[:, :, 0]
g = img[:, :, 1]
r = img[:, :, 2]
rgba = cv2.merge((b, g, r, g))
cv2.imwrite('rgba.png', rgba)
在这段代码中,如果你仔细看一下merge()方法,我传递了四个参数:b、g、r、g。
第四个g是图像的第四层。通过添加第四层,我们对图像进行了过滤。 原始图像如下:
加入第四层后,图像看起来如下:
输出
在这个rgba.png图像中,灰色部分是图像的透明部分。jpg类型的图像不支持分层;png类型的图像支持分层。所以,如果你正在读取一个jpg图像,并在该图像上添加一个额外的图层,那么就把该图像写入一个png 文件中。
如果你已经在读取png图像,你就用png来写,但对于jpg来说,你必须考虑把它转换为png。
你不能使用内置的Python解释器来查看这个图像,因为它也不支持分层图像。所以你必须使用外部软件来查看这个图像。例如,如果你使用的是Mac,你可以使用内置的预览软件来查看这个图像。
这就是在Python中使用OpenCV过滤图像的情况。