问题描述
我正在编写一个 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 (将#修改为@)