在CV_32FC1垫上使用 cv::inrange
use cv::inrange on CV_32FC1 mat
我有一个包含CV_32FC1值的cv::Mat。我使用 inRange 函数来获取具有特定值的元素的位置:
cv::inRange(map,cv::Scalar(0),cv::Scalar(0.5),mask);
但是掩码数组中的所有元素都是零,但我确定掩码必须有大约 255 个值。 我能解决这个问题吗?
我已经成功地在CV_32FC1矩阵中使用了inRange。
代码:cv::inRange(map,cv::Scalar(0),cv::Scalar(0.5),mask);
将输出一个名为mask
的CV_8UC1矩阵,其维度与map
相同。
mask
在地图值介于 0 和 .5(含(之间的每个位置都包含 255,在其他位置都包含 0
如果mask
完全填充 0,则map
不能有任何介于 0 和 .5 之间的值。
尝试增加范围,看看是否在mask
中获得非零值。
我从评论中看到,作为第二步,您想找到所有非零值的位置。
增加范围以从inRange
函数中获得有意义的结果后,只需使用 findNonZero(mask, locations);
将locations
矩阵设置为 N x 1,类型 CV_32SC2,位置矩阵。
相关文章:
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 概念中的cv限定符需要表达式参数列表
- 将CHW格式的浮点向量转换为cv::Mat
- 错误的cv::face FacemarkLBF实例化
- 如何检查给定的参数是否为 cv::noArray()?
- 开放 CV 中的动态内存分配,用于视频处理
- 如何在 opencv 中使用 cv::VideoCapture::waitAny()
- 错误:未定义对cv::cudacodec::createVideoReader的引用
- OpenCV 3.4.1 error readNetFromTensorflow 无法在 cv::d nn::ReadProtoFromBinaryFile 中打开 .pb
- C++:从GPU内存(cudaMemcpy2D)获取BGR图像(cv::Mat)
- 选择基于另一个垫子的非零像素的cv::Mat的一部分?
- 将 cv::mat 转换为 QImage
- Inference pytorch C++ with alexnet and cv::imread image
- OpenCV 3.4.3 中对 'cv::String::d eallocate()' 错误的未定义引用
- cv::Normalise() 中的 L2_NORM 和 NORM_MINMAX 实现有什么区别?
- 将 cv::Mat 转换为 std::vector 的通用函数
- OpenCV undefined reference to 'cv::imread(cv::String const&, int)'
- 在 QML VideoOutput 中将 cv::mat 显示为 QVideoFrame
- 如何应用带有cv::cuda和C++的Canny Edge检测器?
- 在CV_32FC1垫上使用 cv::inrange