Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCV Otsu的阈值:计算多个Mat对象的单个阈值_C++_Opencv - Fatal编程技术网

C++ OpenCV Otsu的阈值:计算多个Mat对象的单个阈值

C++ OpenCV Otsu的阈值:计算多个Mat对象的单个阈值,c++,opencv,C++,Opencv,我有多个不同长度的一维Mat对象线,都是从同一个图像中提取出来的,需要将其阈值化为二进制。 为了获得一个更全局的阈值,我想同时在所有行上使用Otsu的阈值 我目前的方法是使用vconcat获得单个Mat对象。 由于Mat的所有行和列都具有相同的长度,我希望将未初始化的值设置为0,如下所示: [234, 200, 123, 165, 91, 27, 142, 211, 21, 231, 100, 99, 87, 23, 0, 0, 234, 200, 123, 0, 0,

我有多个不同长度的一维Mat对象线,都是从同一个图像中提取出来的,需要将其阈值化为二进制。 为了获得一个更全局的阈值,我想同时在所有行上使用Otsu的阈值

我目前的方法是使用vconcat获得单个Mat对象。 由于Mat的所有行和列都具有相同的长度,我希望将未初始化的值设置为0,如下所示:

[234, 200, 123, 165, 91, 27, 142, 211,
  21, 231, 100,  99, 87, 23,   0,   0,
  234, 200, 123,  0,  0,  0,   0,   0,
  234, 200, 123,  34,132, 32, 242,  12]
当然,我不希望0影响treshold值的计算。
关于如何以高效/优雅的方式解决此问题,有什么建议吗?

对于我来说,Windows 10、OpenCV 4.1.1、Visual Studio Community 2017,以下内容非常有用:

//建立示例矩阵。
我想我把hconcat和vconcat搞混了;我的想法是使用连接方法生成2D Mat。但是,连接到1D垫并在之后分离线实际上不是一个坏主意,因为这样可以消除整个问题。您知道在您的示例中检索阈值垫a、B、C、D的优雅方法吗?如果没有,没关系,因为我相信我能想出一些办法,比如在每个垫子中保存长度和第一个元素的位置thr@CommodoreYournero除了你已经提到的,不,我想不出一个好的解决方案,因为a,B。。。国际米兰就像你从垫子上产生ROI一样。此外,在这里使用Mat指针似乎不起作用。一个完全不同的方法是生成一个阈值掩码,并实现一个自己的掩码阈值方法,如.interest方法,尽管我现在将尝试简单的方法。也许对其他东西也很有用!我会接受这个答案,因为我可以自己用hconcat做剩下的事情。但在每行的长度和该行的顺序之前保存。