#include#include #include #include #include #include #include #include #include using namespace std; using namespace cv; #define MMAP_SIZE 1024*1024*50 // 1024字节 int main() { //LPCWSTR是一个指向unicode编码字符串的32位指针 LPCWSTR mmapName = L"sharemem"; //HANDLE:句柄,是Windows用来表示对象的(不是C++的对象) HANDLE hMapFileVTX = CreateFileMapping(INVALID_HANDLE_VALUE,NULL, PAGE_READWRITE, 0, MMAP_SIZE, mmapName); //LPVOID是一个没有类型的指针,也就是说你可以将任意类型的指针赋值给LPVOID类型的变量(一般作为参数传递), //然后在使用的时候再转换回来。 可以将其理解为long型的指针,指向void型。 LPVOID lpbase = MapViewOfFile(hMapFileVTX, FILE_MAP_ALL_ACCESS, 0, 0, MMAP_SIZE); // Do some work... cv::VideoCapture cap(0); while (cap.isOpened()) { Mat src,frame; cap >> src; //读取当前帧 cv::resize(src,frame,cv::Size(1920,1080)); if(!frame.empty()){ //判断输入的视频帧是否为空的 imshow("C++ sender",frame); //在window窗口显示frame摄像头数据画面 } int size = frame.cols * frame.rows * frame.channels(); cout< py(收视频) import mmap import cv2 import numpy as np while(1): mmap_file = mmap.mmap(-1, 1024 * 1024 * 50, access=mmap.ACCESS_READ, tagname='sharemem') all_buffer = mmap_file.read() data_buffer = all_buffer[:6220800] if(len(data_buffer)==6220800): cv_image = np.frombuffer(data_buffer, dtype=np.uint8).reshape(1080, 1920, 3) cv2.imshow('python rec',cv_image) else: print("error") cv2.waitKey(33)示例画面(实测没有延迟,去掉window标题 分不出谁发谁收) 其他内容 传递int 传递double 传递str图像案例都给了,这些可以类推了吧?什么字符串,json自己捣鼓去吧。



