将图像转换为十进制值 [Python]

convert an image to a decimal value [Python]

我将 opencv 与 python 一起使用,我想将图像转换为十进制值以将其存储在文本文档中。

我尝试使用 b64encode,但它 returns str 或字符串值,但我想要一个十进制值。

提前感谢您的帮助:)

你问的是一个非常幼稚的想法(抱歉)并且行不通。

首先,一张 50x50 的二进制图像已经有 2500 位。一张 RGB 图像需要 60000 位。标准的浮点表示(32 或 64 位)是不可能的,您需要一些 BigNum 表示。

但是,更糟糕的是,如果目标是比较图像,像素的权重将大相径庭,而数值差异将使您无法很好地衡量差异。

你最好看看所谓的相似度分数

我仍然不明白为什么要将图像转换为十进制值。尽管如此,还是有一种天真的方法。

如您提供的代码中所述,首先获取imcode:

import cv2 
import base64 
image = cv2.imread(path + 'date.jpg') 
(tmp,buffer) = cv2.imencode('.jpg', image) 
imcode = base64.b64encode(buffer) 

然后就可以得到imcode中每个字符的ASCII值,使用:

ascii_value = [ord(c) for c in imcode]

现在 ascii_value 是一个整数列表,您可以将其转换为十进制值。

我建议你也看看 THIS LINK