这次皮卡龙带你处理图片
在处理图片之前首先我们要了解图片的属性,这个很简单,我们可以用cv.shape,输出三个值,前两个分别表示的图片的宽和高,第三个值表示的是图片的通道数,一般的图片都是由BGR组成,但是在某些方面我们需要将它转变为单通道的灰色图像(这里只讲转变为灰色图像),可以采用函数cv.cvtColor(图片对象,cv.COLOR_BGR2GRAY)这样一个函数就可以将图片转化为灰度图,后面一些有趣的描边功能的实现就是需要通过这样一个转化的得以实现。
话不多说直接上代码
import cv2 as cv
src = cv.imread('img3.jpg')
print(src.shape)
cv.imshow('t1', src)
cv.namedWindow('image', 0)
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY) #转化为灰度图
print(gray.shape)
cv.imshow(t2', gray)
dst = cv.cvtColor(gray,cv.COLOR_GRAY2BGR) #重新转化为BGR通道
print(dst.shape)
cv.imshow('t3', dst)
cv.waitKey(0) #按任意键退出
cv.destroyAllWindows()
输出的结果为:
(300, 600, 3)
(300, 600)
(300, 600, 3)
我们可以看到将图片变成灰度图时,它的通道数由3变成了1,但是重新转化为BGR通道时他又变成了3
接下来让我们看看图片的效果
为什么重新转化为BGR通道后,图片还是灰色?
我就简单的概括一下,就是不同通道的取值范围是不一样的我们需要通过一些简单的预处理,将范围缩小或扩大到即将转变的色彩空间范围。