在cv::Mat中将float转换为uchar的偏移量
offset converting float to uchar in cv::Mat
在加快进程的过程中(不能命名,抱歉),我试图创建一个
cv::Mat_<uchar> discretization;
现在当我在float中得到深度图
cv::Mat_<float> depth_map;
discretization = depth_map / resolution_mtr;
其中resolution_mtr为浮点数。目前它的值是0.1。当我这样做时,对于深度图中的值0.48,我得到的离散值为5。我的理解是应该是4。我猜是四舍五入到最接近的整数。有没有办法在不进入for循环的情况下跳出来?基本上,我想在离散化中使用底值,而不是四舍五入。
为什么不定义一个继承类cvnoroundat并覆盖它的操作符+呢?
你可以在结果中减去0.5。
这段代码float resolution_mtr = 0.1;
float vals[] = {0.48, 0.4, 0.38, 0.31};
cv::Mat_<float> depth_map(1,4,vals);
cv::Mat_<uchar> discretization( depth_map / resolution_mtr - 0.5);
std::cout << "depth_map: " << depth_map << std::endl;
std::cout << "discretization: " << discretization << std::endl;
将给出以下结果:
depth_map: [0.47999999, 0.40000001, 0.38, 0.31]
discretization: [4, 4, 3, 3]
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 如何将UCHAR虚拟密钥代码转换为std::string
- 在uchar类型的特征::矩阵和cv::Mat之间的转换
- 将<uchar> c++ 中的saturate_cast转换为 Java
- 如何将 CString 转换为 UCHAR 数组
- 将一个 2 字节整数转换并分解为 2 个不同的 uchar,C++具有 endianess 兼容性
- c ++ 如何在 OpenCV 中进行 float->uchar 的转换?
- 无法将 Uchar PTR 转换为 OpenCVsharp
- 将uchar转换为int,然后转换为字符串会导致崩溃
- Qt & Kinect:如何将 BYTE* pBuffer 转换为 QByteArray 或 const uchar*?
- 在cv::Mat中将float转换为uchar的偏移量
- 我可以在 ICU 中从字符*转换为 UChar 吗?
- 为什么UChar*不适用于此ICU转换