当前位置: 首页 > 后端技术 > Python

[灰度图,单通道图像,RGB图像,三通道图像]区别与变换

时间:2023-03-26 12:40:51 Python

1.灰度图像(单通道图像,黑白图像)单通道图像是指维度为2,或者第三维为1,也称为灰度图,可以理解为黑白图像。图像的每个像素点只能有一个值来表示颜色,像素值的范围是[0~255]。下面两张图都是灰度图,只是灰度不同而已。第一个图像中每个像素的值是0或255;第二幅图中每个像素点的值是[0~255]区间。2.彩色图像(RGB图像,三通道图像)彩色图像的每个像素点都有3个值来表示颜色,所以称为3-channel。例如,RGB图像具有三个通道,是彩色图像。如果某个位置的三个通道的值相同,那么图片就会是黑白的,看起来和灰度图一样,但是和灰度图有本质区别。一般称为普通三通道贴图。也就是说:三通道图像可以是灰度图像,而单通道图像只能是灰度图像。比如下面第一张图是彩色图,第二张图是普通的三通道图。3、判断图片是灰度图还是三通道黑白彩色图。右击图像属性,展开详细信息,里面有个位深,如下图:如果是三通道图像,位深是24;如果是单通道图像(灰度图像),位深为8;4、单通道图像和三通道图像[单通道图像]相互转换成[普通三通道图像]第一种方法:stacked_img=np.stack((gray_img,)*3,axis=-1)方法二:img=cv2.cvtColor(img,cv2.COLOR_GRAY2RGB)[单通道图像]转[RGB图像]opencv,PIL不支持,需要使用着色算法[彩色图像,三通道图像]]转换为[单通道图像]第一种方法(读取时转换):img=cv2.imread('test.jpg',0)#参数0相当于:cv2.IMREAD_GRAYSCALE。如果不加0,默认读取为三通道图像,即使原图是灰度图。第二种方法(读后转换):img=cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)PIL方法(读时转换):img=Image.open('test.jpg').convert('L')#当参数为“1”,表示转为二值图像(位深为1,每个像素点的值为0或1)