Mat ,String,char数组之间互转

本文详细介绍了如何在OpenCV中实现图像数据在Mat格式与String、char数组之间的转换方法,包括Mat转String、String转Mat、Mat转char数组及反向转换过程,适合于图像处理和计算机视觉领域的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 Mat 转String

std::vector<uchar> buff;
cv::imencode(".bmp", load_image, buff);
std::string image_string(reinterpret_cast<char*>(&buff[0]), buff.size());

2 String 转Mat

std::vector<char> vec_data(image_string.c_str(), image_string.c_str() +image_string.size());
cv::Mat dst2 = cv::imdecode(vec_data, CV_LOAD_IMAGE_UNCHANGED);

3 Mat 转char数组

char modelImage[MAX_MODEL_IMAGE_SIZE]; //char数组
int modelImageSize ;//数组大小
std::vector<uchar> buff;

cv::imencode(".bmp", load_image, buff);
memset(modelImage, 0, MAX_MODEL_IMAGE_SIZE);
memcpy(modelImage, reinterpret_cast<char*>(&buff[0]), buff.size());
modelImageSize = buff.size();

4 char数组转Mat

char modelImage[MAX_MODEL_IMAGE_SIZE];
int modelImageSize = MAX_MODEL_IMAGE_SIZE;

string str2(modelImage, modelImageSize);
std::vector<char> vec_data1(str2.c_str(), str2.c_str() + str2.size());
cv::Mat dst21= cv::imdecode(vec_data1, CV_LOAD_IMAGE_UNCHANGED);

5 char数组与 String之间的转换

字符数组转化成string类型
char ch [] = "ABCDEFG";
string str(ch);//也可string str = ch;



将string类型转换为字符数组
char buf[10];
string str("ABCDEFG");
strcpy_s(buf, str.c_str());

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值