Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
读取PNG文件时opencv和skimage之间的差异_Opencv_Image Processing_Computer Vision_Scikit Image - Fatal编程技术网

读取PNG文件时opencv和skimage之间的差异

读取PNG文件时opencv和skimage之间的差异,opencv,image-processing,computer-vision,scikit-image,Opencv,Image Processing,Computer Vision,Scikit Image,在读取PNG图像文件时,我使用opencv和skimage测试了输入过程,发现输入图像的形状不同。是什么导致了这些差异,为什么skimage为PNG文件生成四个通道 这是代码段 from skimage.io import imread image = imread("C:\\Desktop\\test1.png") import cv2 img = cv2.imread("C:\\Desktop\\test1.png") print("skimage shape: ",image.shape)

在读取
PNG
图像文件时,我使用
opencv
skimage
测试了输入过程,发现输入图像的形状不同。是什么导致了这些差异,为什么
skimage
PNG
文件生成四个通道

这是代码段

from skimage.io import imread
image = imread("C:\\Desktop\\test1.png")
import cv2
img = cv2.imread("C:\\Desktop\\test1.png")
print("skimage shape: ",image.shape)
print("cv2 shape: ",img.shape)
输出是

skimage shape:  (247, 497, 4)
cv2 shape:  (247, 497, 3)
OpenCV的
imread()
默认情况下丢弃alpha通道(BGRA中的第四个通道)。如果您想保留它,您需要使用标志:

IMREAD\u未更改Python:cv.IMREAD\u未更改

如果已设置,则按原样返回加载的图像(使用alpha通道,否则将被裁剪)

没有这种行为。包含Alpha通道(如果存在):

不同的色带/通道存储在第三维中,使得灰度图像是MxN、RGB图像MxNx3和RGBA图像MxNx4

如注释中所述,使用默认选项,OpenCV的
imread()
始终返回具有BGR颜色顺序的3通道图像(请参见
imread\u color
)。skimage的
imread()
对彩色图像使用RGB(A)顺序,并可以为灰度图像返回单通道数据阵列。

OpenCV的
imread()
默认情况下丢弃alpha通道(BGRA中的第四通道)。如果您想保留它,您需要使用标志:

IMREAD\u未更改Python:cv.IMREAD\u未更改

如果已设置,则按原样返回加载的图像(使用alpha通道,否则将被裁剪)

没有这种行为。包含Alpha通道(如果存在):

不同的色带/通道存储在第三维中,使得灰度图像是MxN、RGB图像MxNx3和RGBA图像MxNx4


如注释中所述,使用默认选项,OpenCV的
imread()
始终返回具有BGR颜色顺序的3通道图像(请参见
imread\u color
)。skimage的
imread()
对彩色图像使用RGB(A)顺序,并可以为灰度图像返回单通道数据阵列。

值得一提的是,opencv imread默认情况下始终提供3通道8位图像,即使文件是单通道或16位。还要注意,色带的顺序在这些软件包之间交换。值得一提的是,opencv imread默认情况下始终提供3通道8位图像,即使文件是单通道或16位。还要注意,色带的顺序在这些软件包之间交换。