gpt4 book ai didi

c++ - 将 std 字符串转换为 nsstring

转载 作者:行者123 更新时间:2023-11-28 06:43:15 26 4
gpt4 key购买 nike

我正在使用 opencv 开发一个 ios 应用程序。目前,从相机获取图像后,我想将此图像发送到后端服务器。所以我将图像从 Mat 格式转换为 NSString。

如下图所示:

    //Convert image from mat format to vector unchar
cv::vector<uchar> buff;//buffer for coding
cv::vector<int> param = cv::vector<int>(2);
param[0]=CV_IMWRITE_JPEG_QUALITY;
param[1]=95;//default(95) 0-100
cv::imencode(".jpg",image,buff,param);

//Convert from vector unchar to string
std::string imageString(buff.begin(), buff.end());
NSLog(@"%lu",imageString.size());

//Convert from string to NSString
imageData = [NSString stringWithCString:imageString.c_str() encoding:[NSString defaultCStringEncoding]];
NSLog(@"%@",imageData);
NSLog(@"%lu",(unsigned long)imageData.length);

首先,我将图像从 mat 转换为 unchar vector 。然后将此 vector 转换为名为 imageString 的标准字符串。最后,将这个 std 字符串转换为 NSString imageData。

但是,imageString 的大小是 80804,我认为应该是正确的。但是 imageData 的大小是 4。我不知道这里发生了什么。

  • 2014-08-27 15:09:04.094 人脸检测[14540:60b] 80804
  • 2014-08-27 15:09:04.095 FaceDetection[14540:60b]ˇÿˇ‡
  • 2014-08-27 15:09:04.097 人脸检测[14540:60b] 4
  • 2014-08-27 15:09:05.438 人脸检测[14540:60b]

代码如下:

NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys:imageData, @"imageData", latitude, @"latitude", longitude, @"longitude", nil];

来自服务器的响应:

2014-08-27 15:09:05.438 FaceDetection[14540:60b] ÈÿÈâ¡53.28588327-6.21796840

最好的问候

最佳答案

避免使用 NSSting,因为它会丢弃不可打印的字符。使用 NSData 将图像信息发送到您的服务器。

关于c++ - 将 std 字符串转换为 nsstring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25529532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com