matplotlib cv2.imread()vs plt.imread()

ih99xse1  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(110)

我需要澄清一下我们使用cv2和matplotlib读取图像文件的方式。
我有一个图像掩码文件在我的存储,这是512 x 512,单通道掩码的东西。
以下是我的观察:

img_plt  = plt.imread('mask1.png')
img_cv2 =  cv2.imread('mask1.png')

print(np.unique(img_cv2),np.unique(img_plt))

字符串
(array([ 0,255],dtype=uint8),array([0,1.],dtype=float32))
所以,我们可以看到这里:CV2读取的单通道图像文件为0s和255s,而matplotlib读取的图像为0.0s和1.0s
我的问题是:
如果我们用matplotlib保存文件,用cv2读取同一个文件,会有什么问题吗?反之呢?

h4cxqtbf

h4cxqtbf1#

这两种方法之间没有区别,因为它们都将图像导出为PNG文件。事实上,您可以将cv2或plt读取的图像转换为其他格式。
您可以尝试以下代码:

import cv2
import matplotlib.pyplot as plt

cv2_img = cv2.imread(path)
cv2plt_img = cv2.cvtColor(cv2_img, cv2.COLOR_BGR2RGB) / 255
plt_img = plt.imread(path)

字符串
这里,cv2plt_img等同于plt_img。

相关问题