将uchar转换为int,然后转换为字符串会导致崩溃
converting uchar to int then to string causes crash
我正试图用Opencv将RGB图像的像素值写入文件。基本上,文件将由等值组成
R-G-B
125-12-54
4-47-2003
图像没有任何问题,显示程序显示它没有任何问题。这是代码的相关部分。
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到字符串的转换不起作用。我很困惑。有什么建议吗?我一定错过了一些琐碎的东西。
我不应该在睡眠不足的情况下工作。
for (int i = 0; i < rows; i++){
for (int t = 0; t < cols; t++){
Vec3b intensity = image.at<Vec3b>(rows, cols);
正如你所看到的,我使用的是变量rows和cols,而不是I和t,这在后来的几个函数中影响了我。
相关文章:
- wcstombs_s(),转换字符串的长度
- 使用 CStringW/CStringA 和 CT2W/CT2A 转换字符串有什么区别?
- 无法转换字符串插入函数的参数
- 转换字符串向量:基于先前的值跳过元素
- 从中间器转换字符串不起作用,出了什么问题?
- 失败的证明转换字符串到枚举类
- 如何使用正则表达式和提升转换迭代器标记和转换 c 字符串
- 使用java jni时转换字符串类型
- 如何避免在转换字符串令牌流时重复istringstream构造
- 阿托伊未正确转换字符串
- C++,转换字符串,使连续下划线序列变为单个下划线
- 使用长算术转换字符串
- 转换字符串十进制数时的精度
- 将词法转换字符串提升为双精度
- 使用marshal_as函数转换字符串的性能
- C++不会从数据转换字符串
- 无论如何,在c++ /Qt中转换字符串到结构中的字段
- C++ 隐式类型转换字符串 -> int?
- 转换字符串到浮点数,c++实现
- 用于转换字符串大小写的函数