利用ZeroMQ傳輸圖片
阿新 • • 發佈:2018-11-28
待傳輸的資料
cv::Mat mat
訂閱端(sub)
import cv2 import zmq sub_port = 6666 context = zmq.Context() #connect to socket we subscrib socket_sub = context.socket(zmq.SUB) socket_sub.connect("tcp://localhost:%d" %sub_port) socket_sub.setsockopt(zmq.SUBSCRIBE, b"") while True: contents = socket_sub.recv() nparr = np.asarray(bytearray(contents), dtype="uint8") img_decode = cv2.imdecode(nparr, cv2.IMREAD_COLOR) cv2.imshow('URL2Image',img_decode) cv2.waitKey(0)
釋出端(PUB)
#include <zmq.hpp> #include <unistd.h> #include <string> zmq::context_t context (1); zmq::socket_t skt (context, ZMQ_PUB); skt.bind ("tcp://*:"+ std::to_string(pub_port)); vector<uchar> data_encode; int pub_port = 6666; cv::imencode(".png", mat, data_encode); zmq::message_t msg(data_encode.size()); memcpy(msg.data(), data_encode.data(), data_encode.size()); skt.send(msg);