0
我试图用Opencv将RGB图像的像素值写入文件。基本上,文件会像将uchar转换为int然后转换为字符串导致崩溃
RGB进行价值
125-12-54
4-47-203
没有什么不对的图像,显示程序显示它没有任何问题。这是代码的相关部分。
Mat rawData = Mat(1, elementcount, CV_8UC1, UArray);
image = imdecode(rawData, IMREAD_COLOR);
...
for (int i = 0; i < rows; i++){
for (int t = 0; t < cols; t++){
Vec3b intensity = image.at<Vec3b>(rows, cols);
ImageValueToString(intensity);
我试过以下,但每次的程序崩溃
void ImageValueToString(Vec3b imagevalue){
int blue = imagevalue.val[0];
string blue_string = to_string(blue); // Crash
void ImageValueToString(Vec3b imagevalue){
int blue = static_cast<int>(imagevalue.val[0]);
string blue_string = to_string(blue); // Crash
void ImageValueToString(Vec3b imagevalue){
uchar blue = imagevalue.val[0];
int blue_int = (int)blue;
string blue_string = to_string(blue_int); // Crash
void ImageValueToString(Vec3b imagevalue){
int blue = imagevalue.val[0];
string s;
stringstream out;
out << blue;
s = out.str(); // crash
如果我省略字符串转换程序工作。这工作
int red = 5;
string red_string = to_string(red);
但是,从uchar,int转换为字符串转换不起作用。我很困惑。有什么建议么?我必须错过一些细节。
它不清楚,但它看起来像你_casting_一个int数组来字符串? C字符串必须以空字符结尾。 –
您应该看看“格式”功能以及“FileStorage” – Miki
如果在'to_string'函数中发生崩溃,您可能会发生堆损坏。 –