在C++;以及使用Redis的python 我想用ReIIS在C++和Python之间共享图像。现在我成功地分享了数字。在C++中,我使用HIRIDSIS作为客户端;在python中,我只需导入redis。我现在掌握的代码如下:
cpp设置值:在C++;以及使用Redis的python 我想用ReIIS在C++和Python之间共享图像。现在我成功地分享了数字。在C++中,我使用HIRIDSIS作为客户端;在python中,我只需导入redis。我现在掌握的代码如下:,python,c++,opencv,redis,Python,C++,Opencv,Redis,cpp设置值: VideoCapture视频(0); Mat-img; int键=0; while(键!=27) { 视频>>img; imshow(“img”,img); key=waitKey(1)&0xFF; reply=(redisReply*)redisCommand(c,“设置%s%d”,“hiredis剑”,键); //printf(“设置(二进制API):%s\n”,回复->str); freeReplyObject(回复); 伊姆格达 } 获取值的python代码: 导入re
VideoCapture视频(0);
Mat-img;
int键=0;
while(键!=27)
{
视频>>img;
imshow(“img”,img);
key=waitKey(1)&0xFF;
reply=(redisReply*)redisCommand(c,“设置%s%d”,“hiredis剑”,键);
//printf(“设置(二进制API):%s\n”,回复->str);
freeReplyObject(回复);
伊姆格达
}
获取值的python代码:
导入redis
R=redis.redis(主机='127.0.0.1',端口='6379')
而1:
打印(R.get('hiredis剑'))
现在我想共享opencv图像而不是数字。我该怎么办?请帮忙,谢谢这里是一个使用
cpp\u redis
的示例,而不是hiredis
(可访问)
C++程序使用OpenCV从磁盘上的文件读取图像,并在密钥<代码>图像< /代码>:< /P>中存储图像
#include <opencv4/opencv2/opencv.hpp>
#include <cpp_redis/cpp_redis>
int main(int argc, char** argv)
{
cv::Mat image = cv::imread("input.jpg");
std::vector<uchar> buf;
cv::imencode(".jpg", image, buf);
cpp_redis::client client;
client.connect();
client.set("image", {buf.begin(), buf.end()});
client.sync_commit();
}
作为替代方法,您可以共享来自C++的文件路径并在Python中读取它。为了节省编码/解码开销,您可以使用
pickle
库来序列化对象。。。我想用C++来把OpenCV图像保存到ReDIS中,并使用Python来读取ReDIS的图像。有什么建议吗?
import cv2
import numpy as np
import redis
store = redis.Redis()
image = store.get('image')
array = np.frombuffer(image, np.uint8)
decoded = cv2.imdecode(array, flags=1)
cv2.imshow('hello', decoded)
cv2.waitKey()