c#向c++(opencv)实现base64图像数据传递和编解码

c#代码:

csharp 复制代码
[DllImport("ocr_cpu_ov.dll", CallingConvention = CallingConvention.Cdecl)]
extern static int det_base64(string in_pixels64);


Bitmap bmp = new Bitmap(@imagePath);
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); // 注意这里的图片类型
byte[] arr = ms.ToArray(); // 使用ToArray()来简化代码
string base64Str = Convert.ToBase64String(arr);


rst = infer_base64(base64Str);

c++代码:

cpp 复制代码
extern "C" OCRDLL_API int det_base64(const char* in_pixels64);


OCRDLL_API int infer_base64(const char* in_pixels64) {
	try {
		std::string imagebase64(in_pixels64);
		std::string decodedImage = base64_decode(imagebase64);

		std::vector<uchar> data(decodedImage.begin(), decodedImage.end());
		cv::Mat img = cv::imdecode(data, cv::IMREAD_COLOR);
	}
	catch (const std::exception& e) {
		std::cerr << "Error: " << e.what() << std::endl;
	}

	return 0;
}
相关推荐
chenbingjie_c10 小时前
C++ 进阶核心知识点总结:模板、内存分区、new/delete、内存池
开发语言·c++
Frank_refuel12 小时前
【C++】Json库介绍和使用
c++
重生之小比特12 小时前
【C++进阶】map和set
java·开发语言·c++
知识分享小能手13 小时前
C++ 学习教程,从入门到精通,C++对象和类 — 详细知识点总结(10)
开发语言·c++·学习
顺顺 尼13 小时前
linux 进程信号(上)
linux·c++·算法
海上小飞龙15 小时前
改一个数,右边全得重算,这题怎么扛住两万次查询
java·c++·python
Persistent的粽子!15 小时前
双指针算法:最大盛水容器
c++·算法·leetcode
小小龙学IT15 小时前
三菱 PLC MC 协议(SLMP / QnA 兼容 3E 帧)深度解析:从帧结构到 C++/Go 双语言采集实战
c语言·c++·golang
程序猿编码15 小时前
C++/CUDA 手写 LLM 推理引擎:拆解 vLLM 核心 PagedAttention 与连续批处理
开发语言·c++·深度学习·神经网络·推理·vllm
hold?fish:palm15 小时前
44 二叉搜索树中第K小的元素
开发语言·c++·算法