将 cv2 的 numpy 数组转换为与读取图像的二进制文件相同?
Turn cv2's numpy array to be the same as reading binary of an image?
有什么方法可以将图像的 numpy 数组表示形式转换为与文件的读取二进制 (rb) 相同,这样代码就可以工作了。
cv_img = cv2.imread("image.jpg")
# Some code here related to the cv_img var...
img = open("image.jpg", 'rb').read()
print(cv_img == img) # So that will be true.
我想要那个,因为我不想必须保存图像才能得到那个
open("image.jpg", 'rb').read() 输出。
预先感谢您的回答我在这里很新,所以我愿意接受对我提问方式的批评:)
简短的回答是否定的。您从 open("image.jpg", 'rb').read()
得到的是 JPEG 编码图像的一维字节数组。 cv2.imread()
为您提供 3 维(宽 x 高 x 蓝色、绿色和红色各一个通道)8 位值数组。一维数组和三维数组不能直接比较,即使可以直接比较,一维数组包含的编码已经解码形成三维数组。
有什么方法可以将图像的 numpy 数组表示形式转换为与文件的读取二进制 (rb) 相同,这样代码就可以工作了。
cv_img = cv2.imread("image.jpg")
# Some code here related to the cv_img var...
img = open("image.jpg", 'rb').read()
print(cv_img == img) # So that will be true.
我想要那个,因为我不想必须保存图像才能得到那个
open("image.jpg", 'rb').read() 输出。
预先感谢您的回答我在这里很新,所以我愿意接受对我提问方式的批评:)
简短的回答是否定的。您从 open("image.jpg", 'rb').read()
得到的是 JPEG 编码图像的一维字节数组。 cv2.imread()
为您提供 3 维(宽 x 高 x 蓝色、绿色和红色各一个通道)8 位值数组。一维数组和三维数组不能直接比较,即使可以直接比较,一维数组包含的编码已经解码形成三维数组。