查找 cv2 图像的文件格式

问题描述

我正在编写一个 ROS2 项目。我从相机获取图像并想将其直播到网页。为此,我必须对它进行 Base64 编码并将其发送到网页。目前我这样做:

self.bridge = cv_bridge.CvBridge() 

def callback_color_image_raw(self,msg):
    try:
      # Decode the ROS2 Img data. There is barely any 
      # documentation on this so I dont kNow how it saves the imgdata
      self.frame = self.bridge.imgmsg_to_cv2(msg,"bgr8")
    except CvBridgeError as e:
      print(str(e))

    self.frame = cv2.imencode('.jpg',self.frame)[1]
    self.frame = self.frame.tobytes()
    image_64_encode = base64.b64encode(self.frame)
    self.image_encoded = image_64_encode.decode('utf-8')

我可以通过 CV 命令找到 self.frame 的图像格式吗? imgmsg_to_cv2 转换成什么?我想知道我是否必须将imencode转为jpg(是否已经是jpg格式?)。

当我执行 type(self.frame) 我得到 <class 'numpy.ndarray'>(在 imencode 之前和之后),那么有没有办法从中获取格式?

它不像寻找魔法字节那么容易,因为文件仍然在 np.ndarray 中。然而,后来编码的图像也是一个 np.ndarray,这意味着这些数组代表 jpg、png 等,没有魔术字节,而是原始数据。请停止将我链接到解释魔术字节的文章

格式我指的是 jpg、png、bmp 等

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)