c ++ 如何在 OpenCV 中进行 float->uchar 的转换?
c++ How can I do the casting float->uchar in OpenCV?
我的高斯掩码1D有问题。我有一个功能:
f(x) = exp(-0.5*x^^2 / sigma^^2)
所以,我在OpenCV:中制作了这段代码
Mat getMask(int sigma){
Mat out(1,6*sigma+1,CV_8UC1);
for (int i=0; i<6*sigma+1; i++){
float f = exp((-1)*(i-(6*sigma)/2)/(sigma*sigma));
out.at<uchar>(Point(i,0)) = static_cast<unsigned char>(f);
}
return out;
}
但是,当我在我的图像上涂上口罩时,它会返回一个黑色的。我试着用cout随时控制垫子上的东西,我会得到笑脸之类的字符。我该怎么办
这就是我在循环中看到的cout:
Float: 20.0855
Casting float to unsigned char: ¶
What I insert: ¶
如果您想在输出流中显示像素的值,您应该执行如下所示的显式强制转换-
cout << (int) image.at<uchar>(i,j) << endl;
相关文章:
- EASTL矢量<向量<int>>连续的
- 使用 mat.at<uchar>(i,j) 的 opencv C++中的矩阵赋值错误
- 警告C4018,包含int和UINT32,但不包含int和UCHAR
- 如何使用 PPM 格式的 uchar* 数组填充 QPixmap
- 这个陈述'p = I.ptr<uchar>(i);有什么作用?
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ
- C 字符串比较“祝您好运”&gt;“再见”
- 为什么将此对向量&lt; map&lt; int,int&gt;&gt;中的地图进行更新.失败
- 如何读取从UChar缓冲区到CV :: MAT的1位BMP
- 我可以将一个 uchar 数组用作单个 uchar 吗?
- C :对矢量进行排序&lt; struct&gt;(结构有2个整数)基于结构的整数之一
- C 操作员&gt;&gt;与突变器过载
- 明确的专业化“ CheckIntmap&lt;&gt;”实例化
- 是否需要使用 - &gt;运算符在C 中调用成员函数时
- 什么是模板&lt;&gt;inline bla bla
- 编辑C Qlist&lt; object*&gt; gt;QML代码和一些QML警告中的模型
- eigen :: llt&lt;eigen :: matrixxd&gt;具有不完整的类型
- 错误,包括&lt; ctype&gt;在原子上使用C 11
- 错误c++visual studio c2227左侧'->;Init';必须指向类/结构/联合/泛型类型
- std::vector<;uint8_t>;当C++11/14启用时,手动复制而不是调用memcpy