如何将 cv2.imwrite 保存到变量中并在 cv.imread 中调用它

How to save cv2.imwrite into a variable and called it in cv.imread

我正在使用 cv2.imwrite 来保存我新编辑的图像。现在我想在 cv.imread 中调用它。我想将我的新图像写入变量,以便我可以在 cv.imread 中调用该变量,但看起来 cv.imread 不读取该变量。

目前我正在做的事情如下

cv2.imwrite("C:/Users/Imp/MyKey16.png", EditImg)
img1 = cv.imread('C:/Users/Imp/MyKey16.png',0)

我想取而代之;

EditedImage = cv2.imwrite("C:/Users/Imp/MyKey16.png", EditImg)
img1 = cv.imread(EditedImage)

如何实现?

为什么不直接将图像复制到变量中。为什么一定要保存到本地?

img_clone = EditImg.copy()

这是不可能的,因为 imread 将字符串作为参数(文件名),而 iwrite 第二个参数是 cv::Mat。为什么不将文件名存储在变量中?

filename = 'C:/Users/Imp/MyKey16.png'
EditedImage = cv2.imwrite(filename, EditImg)
img1 = cv.imread(filename)

但同样,除非您有正当理由,否则无需将图像保存在本地,只需按照 Muhammed Yücel 的回答中的建议复制 cv::Mat