Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C++;以及使用Redis的python 我想用ReIIS在C++和Python之间共享图像。现在我成功地分享了数字。在C++中,我使用HIRIDSIS作为客户端;在python中,我只需导入redis。我现在掌握的代码如下:_Python_C++_Opencv_Redis - Fatal编程技术网

在C++;以及使用Redis的python 我想用ReIIS在C++和Python之间共享图像。现在我成功地分享了数字。在C++中,我使用HIRIDSIS作为客户端;在python中,我只需导入redis。我现在掌握的代码如下:

在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

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代码:

导入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()