如何在 opencv 中声明存储 0 到 1 之间的浮点值的 Mat
How to declare Mat that stores float values between 0 and 1 in opencv
我想将带有RBG图像的垫子(即具有3个通道的垫子)的值与阈值进行比较Mat th = [0.2,0.2,0.2]
其中每个垫子th值对应于每个通道的阈值,即 th=[th for Red,th for blue,th for Green]
.
当我宣布th为Mat th(3,1,CV_32F,Scalar(0.2,0.2,0.2));
cout<<th;
的输出显示th=[0,0,0]
。我在声明数据类型时犯了什么错误?对于 3 个通道,我需要将其声明为 Mat th(1,1,CV_32UC3,Scalar(0.2,0.2,0.2))
吗?哪种数据类型有助于捕获 3 个通道和非整数的逻辑?
我相信
你正在寻找CV_32FC3。另一种选择是如果您只需要一个像素,请使用 Vec3f。
Mat th(1,1,CV_32FC3,Scalar(0.2,0.2,0.2));
或
Vec3f th(0.2, 0.2, 0.2);
在 3 通道Mat
中使用类型 CV_32FC3
或 CV_64FC3
进行浮点数。
Mat th(3,1,CV_32FC3,Scalar(0.2,0.2,0.2));
或
Mat th(3,1,CV_64FC3,Scalar(0.2,0.2,0.2));
相关文章:
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- Difference in displaying cv2 Mat
- int(c) 和 c-'0' 之间的区别。C++
- 在cuda线程之间共享大量常量数据
- 在c代码之间共享数据的最佳方式
- Mix_Init和Mix_OpenAudio SDL之间的区别是什么
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- OPENCV MAT问题:直方图和此循环之间的差异
- cv::Mat::t () 和 cv::transpose() 之间的区别
- 在CV :: MAT和Qimage之间进行转换会使程序崩溃
- 如何在 opencv 中声明存储 0 到 1 之间的浮点值的 Mat
- 对象Mat(args)之间的区别是什么——内存分配明智;Object*Mat=新Mat(args);在C++中
- 在uchar类型的特征::矩阵和cv::Mat之间的转换
- 在不同的进程之间传输cv::Mat对象的最佳方式是什么
- 在表格之间传递cv::Mat
- cv::Mat和XnDepthPixel之间的转换*
- 将cv::Mat之间的矩阵转换为Eigen:: matrix和
- 在OpenCV Mat和Leptonica Pix之间转换
- 在 Mat 和 Mat1b/Mat3b 之间进行转换
- 以下3个opencv Mat实例之间的区别是什么